#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "prescheme.h"
#include "scheme48vm-prelude.h"

static char add_more_channels(long);
static char integerLE(long, long);
static char integerGE(long, long);
static char shared_binding_undefinedP(long);
static void enqueue_channelB(long, long, long);
static long close_channelB(long);
static long make_blank_return_code(long, long, long, long, long);
static long add_log_entryAgc(long, long, long, long, long, char);
static long enter_bignum(char *);
static char integerE(long, long);
static long make_channel(long, long, long, long, long, long, long, long);
static long enter_stringAgc(char*);
static long current_code_vector(void);
static void channel_close_error(long, long, long);
static long integer_bit_count(long);
static long integer_add(long, long);
static long integer_subtract(long, long);
static long integer_multiply(long, long);
static long integer_bitwise_not(long);
static long integer_bitwise_and(long, long);
static long integer_bitwise_ior(long, long);
static long integer_bitwise_xor(long, long);
static long Hinteger_op7480(long, long);
static long Hinteger_op7411(long, long);
static char for_each_imported_binding(char(*)(long));
static long really_preserve_continuation(long);
static void push_exception_setupB(long, long);
static long Hlookup2762(long, long, long);
static long Hlookup2743(long, long, long);
static void HtopD10644(void);
static void HtopD10655(void);
void s48_set_native_protocolB(long);
void s48_set_extension_valueB(long);
long s48_channel_count(void);
long *s48_channels(void);
char s48_os_signal_pending(void);
long s48_imported_bindings(void);
long s48_exported_bindings(void);
long s48_symbol_table(void);
char * s48_set_gc_roots_baseB(void);
char s48_release_gc_roots_baseB(char *);
void s48_reset_external_rootsB(void);
void s48_note_event(void);
void s48_reset_interruptsB(void);
void s48_disable_interruptsB(void);
void s48_add_os_signal(long);
void s48_push_gc_rootsB(char *, long);
char * s48_register_gc_rootB(char *);
void s48_stack_setB(long, long);
long s48_stack_ref(long);
void s48_push(long);
long s48_resetup_external_exception(long, long);
char s48_pop_gc_rootsB(void);
void s48_unregister_gc_rootB(char *);
char * s48_shorten_bignum(char *, long);
long s48_allocate_bignum(long);
void s48_enable_interruptsB(void);
long s48_set_channel_os_index(long, long);
long s48_integer_or_floanum_L(long, long);
long s48_integer_or_floanum_G(long, long);
long s48_integer_or_floanum_LE(long, long);
long s48_integer_or_floanum_GE(long, long);
long s48_make_blank_return_code(long, long, long, long);
long s48_integer_or_floanum_E(long, long);
void s48_close_channel(long);
void check_stack(void);
long s48_really_add_channel(long, long, long);
long s48_integer_bit_count(long);
long s48_enter_integer(long);
long s48_integer_or_floanum_add(long, long);
long s48_integer_or_floanum_sub(long, long);
long s48_integer_or_floanum_mul(long, long);
long s48_integer_bitwise_not(long);
long s48_integer_bitwise_and(long, long);
long s48_integer_bitwise_ior(long, long);
long s48_integer_bitwise_xor(long, long);
void s48_setup_external_exception(long, long);
long s48_integer_quotient(long, long);
long s48_integer_remainder(long, long);
void s48_copy_stack_into_heap(void);
long s48_get_imported_binding(char*);
void s48_define_exported_binding(char*, long);
void s48_initialize_vm(char *, long);
void s48_post_gc_cleanup(void);
void s48_gc_root(void);
long s48_restart(long, long);
long s48_call_startup_procedure(char**, long);
static long Spending_interruptsS;
static long Snumber_of_channelsS;
static long *Svm_channelsS;
static long Spending_channels_headS;
static long Spending_channels_tailS;
static long Stemp0S;
static long Stemp1S;
static char * Sstack_beginS;
static char * Sstack_endS;
static char * Sreal_stack_limitS;
static char * Sbottom_of_stackS;
static long Sheap_continuationS;
static char Sstack_warningPS;
static long Soldspace_beginS;
static long Soldspace_endS;
static long Sexception_handlersS;
static long Sinterrupt_handlersS;
static char * Slast_code_pointer_resumedS;
static long Scurrent_threadS;
static long Ssession_dataS;
static long Sfinalizer_alistS;
static long Sfinalize_theseS;
static long Senabled_interruptsS;
static long Sinterrupted_templateS;
static long Sinterrupted_byte_opcode_return_codeS;
static long Sinterrupted_native_call_return_codeS;
static long Snative_poll_return_codeS;
static long Sexception_return_codeS;
static long Snative_exception_return_codeS;
static long Scall_with_values_return_codeS;
static long Ssaved_pcS;
static long *Sos_signal_ringS;
static long Sos_signal_ring_startS;
static long Sos_signal_ring_readyS;
static long Sos_signal_ring_endS;
static char Sexternal_exceptionPS;
static long Sexternal_exception_nargsS;
static long Simported_bindingsS;
static long Sexported_bindingsS;
static long Sthe_symbol_tableS;
static char * Sexternal_root_stackS;
static char * Sexternal_root_stack_baseS;
static char * Spermanent_external_rootsS;
static long Sempty_logS;
static void (*Spost_gc_cleanupS)(void);
static void (*Sgc_root_procS)(void);
char * SstackS;
char * s48_Sstack_limitS;
char * ScontS;
char * Scode_pointerS;
long SvalS;
long Slast_code_calledS;
char s48_Spending_interruptPS;
long Snative_exception_contS;
long s48_Snative_protocolS;
long s48_Sextension_valueS;
long s48_Scallback_return_stack_blockS;
char s48_Spending_eventsPS;

static char add_more_channels(long index_6X)
{
  long arg0K0;
  long i_12X;
  long i_11X;
  long *new_vm_channels_10X;
  long new_count_9X;
  long y_8X;
  long x_7X;
 {  x_7X = 1 + index_6X;
  y_8X = 8 + (Snumber_of_channelsS);
  if ((x_7X < y_8X)) {
    arg0K0 = y_8X;
    goto L3102;}
  else {
    arg0K0 = x_7X;
    goto L3102;}}
 L3102: {
  new_count_9X = arg0K0;
  new_vm_channels_10X = (long*)malloc(sizeof(long) * new_count_9X);
  if ((NULL == new_vm_channels_10X)) {
    return 0;}
  else {
    arg0K0 = 0;
    goto L3114;}}
 L3114: {
  i_11X = arg0K0;
  if ((i_11X == (Snumber_of_channelsS))) {
    arg0K0 = (Snumber_of_channelsS);
    goto L3187;}
  else {
    *(new_vm_channels_10X + i_11X) = (*((Svm_channelsS) + i_11X));
    arg0K0 = (1 + i_11X);
    goto L3114;}}
 L3187: {
  i_12X = arg0K0;
  if ((i_12X == new_count_9X)) {
    free((Svm_channelsS));
    Svm_channelsS = new_vm_channels_10X;
    Snumber_of_channelsS = new_count_9X;
    return 1;}
  else {
    *(new_vm_channels_10X + i_12X) = 1;
    arg0K0 = (1 + i_12X);
    goto L3187;}}
}
static char integerLE(long x_13X, long y_14X)
{
  long v_17X;
  long v_16X;
  long v_15X;
 {  if ((0 == (3 & y_14X))) {
    if ((0 == (3 & x_13X))) {
      if ((y_14X < x_13X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_15X = s48_bignum_test((((char *) (-3 + x_13X))));
      if ((1 == v_15X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_13X))) {
      v_16X = s48_bignum_test((((char *) (-3 + y_14X))));
      if ((1 == v_16X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_17X = s48_bignum_compare((((char *) (-3 + y_14X))), (((char *) (-3 + x_13X))));
      if ((-1 == v_17X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char integerGE(long x_18X, long y_19X)
{
  long v_22X;
  long v_21X;
  long v_20X;
 {  if ((0 == (3 & x_18X))) {
    if ((0 == (3 & y_19X))) {
      if ((x_18X < y_19X)) {
        return 0;}
      else {
        return 1;}}
    else {
      v_20X = s48_bignum_test((((char *) (-3 + y_19X))));
      if ((1 == v_20X)) {
        return 0;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_19X))) {
      v_21X = s48_bignum_test((((char *) (-3 + x_18X))));
      if ((1 == v_21X)) {
        return 1;}
      else {
        return 0;}}
    else {
      v_22X = s48_bignum_compare((((char *) (-3 + x_18X))), (((char *) (-3 + y_19X))));
      if ((-1 == v_22X)) {
        return 0;}
      else {
        return 1;}}}}
}
static char shared_binding_undefinedP(long binding_23X)
{

 {  return (17 == (255 & (*((long *) ((((char *) (-3 + binding_23X))) + 8)))));}
}
static void enqueue_channelB(long index_24X, long status_25X, long errorP_26X)
{
  char * addr_32X;
  long x_31X;
  char * addr_30X;
  char * addr_29X;
  long val_28X;
  long channel_27X;
 {  channel_27X = *((Svm_channelsS) + index_24X);
  val_28X = ((status_25X)<<2);
  addr_29X = (((char *) (-3 + channel_27X))) + 20;S48_WRITE_BARRIER(channel_27X, addr_29X, val_28X);
  *((long *) addr_29X) = (long) (val_28X);
  addr_30X = (((char *) (-3 + channel_27X))) + 24;S48_WRITE_BARRIER(channel_27X, addr_30X, errorP_26X);
  *((long *) addr_30X) = (long) (errorP_26X);
  if ((1 == (*((long *) ((((char *) (-3 + channel_27X))) + 16))))) {
    if ((channel_27X == (Spending_channels_headS))) {
      return;}
    else {
      if ((channel_27X == (Spending_channels_tailS))) {
        return;}
      else {
        if ((1 == (Spending_channels_headS))) {
          Spending_channels_headS = channel_27X;
          Spending_channels_tailS = channel_27X;
          return;}
        else {
          x_31X = Spending_channels_tailS;
          addr_32X = (((char *) (-3 + x_31X))) + 16;S48_WRITE_BARRIER(x_31X, addr_32X, channel_27X);
          *((long *) addr_32X) = (long) (channel_27X);
          Spending_channels_tailS = channel_27X;
          return;}}}}
  else {
    return;}}
}
static long close_channelB(long channel_33X)
{
  long arg0K0;
  char * addr_41X;
  long status_40X;
  long v_39X;
  long v_38X;
  long v_37X;
  long v_36X;
  long x_35X;
  long os_index_34X;
 {  os_index_34X = (((*((long *) ((((char *) (-3 + channel_33X))) + 8))))>>2);
  x_35X = *((long *) ((((char *) (-3 + channel_33X))) + 20));
  if ((5 == x_35X)) {
    v_36X = ps_abort_fd_op(os_index_34X);enqueue_channelB(os_index_34X, v_36X, 1);
    goto L11963;}
  else {
    goto L11963;}}
 L11963: {
  v_37X = *((long *) (((char *) (-3 + channel_33X))));
  if ((4 == v_37X)) {
    goto L11978;}
  else {
    if ((12 == (*((long *) (((char *) (-3 + channel_33X))))))) {
      goto L11978;}
    else {
      v_38X = ps_close_fd(os_index_34X);
      arg0K0 = v_38X;
      goto L11985;}}}
 L11978: {
  v_39X = ps_close_fd(os_index_34X);
  arg0K0 = v_39X;
  goto L11985;}
 L11985: {
  status_40X = arg0K0;
  *((Svm_channelsS) + os_index_34X) = 1;
  addr_41X = ((char *) (-3 + channel_33X));S48_WRITE_BARRIER(channel_33X, addr_41X, 0);
  *((long *) addr_41X) = (long) (0);
  return status_40X;}
}
static long make_blank_return_code(long protocol_42X, long template_43X, long frame_size_44X, long opcode_count_45X, long key_46X)
{
  long code_49X;
  char * addr_48X;
  long length_47X;
 {  length_47X = 15 + opcode_count_45X;
  addr_48X = s48_allocate_small((4 + length_47X));
  *((long *) addr_48X) = (long) ((70 + (((length_47X)<<8))));
  code_49X = 3 + (((long) (addr_48X + 4)));
  *((unsigned char *) (((char *) (-3 + code_49X)))) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 1)) = (unsigned char) (protocol_42X);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 2)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 3)) = (unsigned char) (31);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 4)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 5)) = (unsigned char) (8);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 6)) = (unsigned char) ((255 & (((template_43X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 7)) = (unsigned char) ((255 & template_43X));
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 8)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 9)) = (unsigned char) (13);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 10)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 11)) = (unsigned char) ((255 & (((frame_size_44X)>>8))));
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 12)) = (unsigned char) ((255 & frame_size_44X));
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 13)) = (unsigned char) (0);
  *((unsigned char *) ((((char *) (-3 + code_49X))) + 14)) = (unsigned char) (protocol_42X);
  return code_49X;}
}
static long add_log_entryAgc(long proposal_index_50X, long i_51X, long stob_52X, long index_53X, long value_54X, char verifyP_55X)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char * addr_80X;
  long value_79X;
  long v_78X;
  long value_77X;
  char * addr_76X;
  long i_75X;
  long stob_74X;
  long proposal_73X;
  long new_72X;
  char * addr_71X;
  char * addr_70X;
  long value_69X;
  long vector_68X;
  char * addr_67X;
  char * addr_66X;
  char * addr_65X;
  long log_64X;
  long value_63X;
  long stob_62X;
  long proposal_61X;
  char * addr_60X;
  long len_59X;
  long new_size_58X;
  long log_size_57X;
  long proposal_56X;
 {  proposal_56X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  log_size_57X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + proposal_56X))) + (((proposal_index_50X)<<2)))))))) + -4))))>>8))))>>2);
  if ((i_51X == (-1 + log_size_57X))) {
    Stemp0S = stob_52X;
    Stemp1S = value_54X;
    if ((1 == log_size_57X)) {
      arg0K0 = 17;
      goto L10441;}
    else {
      arg0K0 = (-1 + (((log_size_57X)<<1)));
      goto L10441;}}
  else {
    arg0K0 = proposal_56X;
    arg0K1 = stob_52X;
    arg0K2 = value_54X;
    goto L13938;}}
 L10441: {
  new_size_58X = arg0K0;
  len_59X = ((new_size_58X)<<2);
  addr_60X = s48_allocate_tracedAgc((4 + len_59X));
  if ((addr_60X == NULL)) {
    arg0K0 = 1;
    goto L10487;}
  else {
    *((long *) addr_60X) = (long) ((10 + (((len_59X)<<8))));
    arg0K0 = (3 + (((long) (addr_60X + 4))));
    goto L10487;}}
 L13938: {
  proposal_61X = arg0K0;
  stob_62X = arg0K1;
  value_63X = arg0K2;
  log_64X = *((long *) ((((char *) (-3 + proposal_61X))) + (((proposal_index_50X)<<2))));
  addr_65X = (((char *) (-3 + log_64X))) + (((i_51X)<<2));S48_WRITE_BARRIER(log_64X, addr_65X, stob_62X);
  *((long *) addr_65X) = (long) (stob_62X);
  addr_66X = (((char *) (-3 + log_64X))) + (4 + (((i_51X)<<2)));S48_WRITE_BARRIER(log_64X, addr_66X, index_53X);
  *((long *) addr_66X) = (long) (index_53X);
  addr_67X = (((char *) (-3 + log_64X))) + (8 + (((i_51X)<<2)));S48_WRITE_BARRIER(log_64X, addr_67X, value_63X);
  *((long *) addr_67X) = (long) (value_63X);
  if (verifyP_55X) {
    arg0K0 = value_63X;
    goto L13959;}
  else {
    arg0K0 = 29;
    goto L13959;}}
 L10487: {
  vector_68X = arg0K0;
  if ((1 == vector_68X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_68X;
    goto L10445;}
  else {
    arg0K0 = vector_68X;
    goto L10445;}}
 L13959: {
  value_69X = arg0K0;
  addr_70X = (((char *) (-3 + log_64X))) + (12 + (((i_51X)<<2)));S48_WRITE_BARRIER(log_64X, addr_70X, value_69X);
  *((long *) addr_70X) = (long) (value_69X);
  addr_71X = (((char *) (-3 + log_64X))) + (16 + (((i_51X)<<2)));S48_WRITE_BARRIER(log_64X, addr_71X, 1);
  *((long *) addr_71X) = (long) (1);
  return value_63X;}
 L10445: {
  new_72X = arg0K0;
  proposal_73X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 < log_size_57X)) {
    stob_74X = *((long *) ((((char *) (-3 + proposal_73X))) + 4));
    memmove((void *)(((char *) (-3 + new_72X))), (void *)(((char *) (-3 + stob_74X))),(-4 + (((log_size_57X)<<2))));
    goto L10465;}
  else {
    goto L10465;}}
 L10465: {
  arg0K0 = (4 + log_size_57X);
  goto L10469;}
 L10469: {
  i_75X = arg0K0;
  if ((i_75X == new_size_58X)) {
    addr_76X = (((char *) (-3 + proposal_73X))) + (((proposal_index_50X)<<2));S48_WRITE_BARRIER(proposal_73X, addr_76X, new_72X);
    *((long *) addr_76X) = (long) (new_72X);
    value_77X = Stemp0S;
    Stemp0S = 1;
    v_78X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
    value_79X = Stemp1S;
    Stemp1S = 1;
    arg0K0 = v_78X;
    arg0K1 = value_77X;
    arg0K2 = value_79X;
    goto L13938;}
  else {
    addr_80X = (((char *) (-3 + new_72X))) + (((i_75X)<<2));S48_WRITE_BARRIER(new_72X, addr_80X, 0);
    *((long *) addr_80X) = (long) (0);
    arg0K0 = (1 + i_75X);
    goto L10469;}}
}
static long enter_bignum(char * external_bignum_81X)
{
  long desc_82X;
 {  desc_82X = 3 + (((long) external_bignum_81X));
  if ((3 == (3 & desc_82X))) {
    if ((19 == (31 & ((((*((long *) ((((char *) (-3 + desc_82X))) + -4))))>>2))))) {
      goto L14689;}
    else {
      goto L14703;}}
  else {
    goto L14703;}}
 L14689: {
  if ((3 == (3 & desc_82X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + desc_82X))) + -4)))))) {
      *((long *) ((((char *) (-3 + desc_82X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + desc_82X))) + -4)))));
      return desc_82X;}
    else {
      return desc_82X;}}
  else {
    return desc_82X;}}
 L14703: {
  ps_error("not a bignum", 1, desc_82X);
  goto L14689;}
}
static char integerE(long x_83X, long y_84X)
{

 {  if ((0 == (3 & (x_83X | y_84X)))) {
    return (x_83X == y_84X);}
  else {
    if ((3 == (3 & x_83X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_83X))) + -4))))>>2))))) {
        if ((3 == (3 & y_84X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_84X))) + -4))))>>2))))) {
            return s48_bignum_equal_p((((char *) (-3 + x_83X))), (((char *) (-3 + y_84X))));}
          else {
            return 0;}}
        else {
          return 0;}}
      else {
        return 0;}}
    else {
      return 0;}}}
}
static long make_channel(long a_85X, long b_86X, long c_87X, long d_88X, long e_89X, long f_90X, long g_91X, long key_92X)
{
  long x_94X;
  char * addr_93X;
 {  addr_93X = s48_allocate_small(32);
  *((long *) addr_93X) = (long) (7194);
  x_94X = 3 + (((long) (addr_93X + 4)));
  *((long *) (((char *) (-3 + x_94X)))) = (long) (a_85X);
  *((long *) ((((char *) (-3 + x_94X))) + 4)) = (long) (b_86X);
  *((long *) ((((char *) (-3 + x_94X))) + 8)) = (long) (c_87X);
  *((long *) ((((char *) (-3 + x_94X))) + 12)) = (long) (d_88X);
  *((long *) ((((char *) (-3 + x_94X))) + 16)) = (long) (e_89X);
  *((long *) ((((char *) (-3 + x_94X))) + 20)) = (long) (f_90X);
  *((long *) ((((char *) (-3 + x_94X))) + 24)) = (long) (g_91X);
  return x_94X;}
}
static long enter_stringAgc(char *string_95X)
{
  long arg0K0;
  long i_100X;
  long string_99X;
  char * addr_98X;
  long len_97X;
  long z_96X;
 {  z_96X = strlen((char *) string_95X);s48_make_availableAgc((4 + (-4 & (4 + z_96X))));
  len_97X = 1 + z_96X;
  addr_98X = s48_allocate_small((4 + len_97X));
  *((long *) addr_98X) = (long) ((66 + (((len_97X)<<8))));
  string_99X = 3 + (((long) (addr_98X + 4)));
  *((unsigned char *) ((((char *) (-3 + string_99X))) + z_96X)) = (unsigned char) (0);
  arg0K0 = 0;
  goto L16287;}
 L16287: {
  i_100X = arg0K0;
  if ((i_100X == z_96X)) {
    return string_99X;}
  else {
    *((unsigned char *) ((((char *) (-3 + string_99X))) + i_100X)) = (unsigned char) ((((unsigned char) (*(string_95X + i_100X)))));
    arg0K0 = (1 + i_100X);
    goto L16287;}}
}
static long current_code_vector(void)
{
  long arg0K0;
  long x_113X;
  long v_112X;
  long x_111X;
  long header_110X;
  char * start_109X;
  char * code_pointer_108X;
  long code_107X;
  char * pointer_106X;
  char * code_pointer_105X;
  long header_104X;
  char * start_103X;
  long code_102X;
  char * code_pointer_101X;
 {  code_pointer_101X = Scode_pointerS;
  code_102X = Slast_code_calledS;
  start_103X = ((char *) (-3 + code_102X));
  if ((code_pointer_101X < start_103X)) {
    goto L17393;}
  else {
    header_104X = *((long *) ((((char *) (-3 + code_102X))) + -4));
    if ((3 == (3 & header_104X))) {
      arg0K0 = header_104X;
      goto L17414;}
    else {
      arg0K0 = code_102X;
      goto L17414;}}}
 L17393: {
  code_pointer_105X = Slast_code_pointer_resumedS;
  pointer_106X = code_pointer_105X + -5;
  code_107X = 3 + (((long) (code_pointer_105X + (0 - (((((*((unsigned char *) pointer_106X)))<<8)) + (*((unsigned char *) (pointer_106X + 1))))))));
  code_pointer_108X = Scode_pointerS;
  start_109X = ((char *) (-3 + code_107X));
  if ((code_pointer_108X < start_109X)) {
    goto L17401;}
  else {
    header_110X = *((long *) ((((char *) (-3 + code_107X))) + -4));
    if ((3 == (3 & header_110X))) {
      arg0K0 = header_110X;
      goto L17435;}
    else {
      arg0K0 = code_107X;
      goto L17435;}}}
 L17414: {
  x_111X = arg0K0;
  if ((code_pointer_101X < (start_103X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_111X))) + -4))))>>8))))) {
    return (Slast_code_calledS);}
  else {
    goto L17393;}}
 L17401: {
  ps_error("VM error: unable to locate current code vector", 3, (((long) (Scode_pointerS))), (Slast_code_calledS), (((long) (Slast_code_pointer_resumedS))));
  return v_112X;}
 L17435: {
  x_113X = arg0K0;
  if ((code_pointer_108X < (start_109X + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_113X))) + -4))))>>8))))) {
    return code_107X;}
  else {
    goto L17401;}}
}
static void channel_close_error(long status_114X, long index_115X, long id_116X)
{

 {  ps_write_string("Error: ", (stderr));
  ps_write_string((ps_error_string(status_114X)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  ps_write_string(" while closing port ", (stderr));
  if ((3 == (3 & id_116X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + id_116X))) + -4))))>>2))))) {
      ps_write_string((((char *)(((char *) (-3 + id_116X))))), (stderr));
      goto L17829;}
    else {
      goto L17823;}}
  else {
    goto L17823;}}
 L17829: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  return;}
 L17823: {
  ps_write_integer((((index_115X)>>2)), (stderr));
  goto L17829;}
}
static long integer_bit_count(long x_117X)
{
  long arg0K1;
  long arg0K0;
  char * arg1K0;
  long n_124X;
  char * v_123X;
  char * v_122X;
  long value_121X;
  long v_120X;
  long extra_119X;
  long length_118X;
 {  if ((0 == (3 & x_117X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20003;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_117X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20003;}}
 L20003: {
  length_118X = arg0K0;
  extra_119X = arg0K1;
  if ((length_118X < 1)) {
    arg0K0 = 1;
    goto L20005;}
  else {
    arg0K0 = length_118X;
    goto L20005;}}
 L20005: {
  v_120X = arg0K0;
  Stemp0S = x_117X;s48_make_availableAgc((((((1 + ((((11 + (((v_120X)<<2))))>>2))) + extra_119X))<<2)));
  value_121X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_121X))) {
    v_122X = (char *) s48_long_to_bignum((((value_121X)>>2)));
    arg1K0 = v_122X;
    goto L19995;}
  else {
    arg1K0 = (((char *) (-3 + value_121X)));
    goto L19995;}}
 L19995: {
  v_123X = arg1K0;
  n_124X = s48_bignum_bit_count(v_123X);
  return (((n_124X)<<2));}
}
static long integer_add(long x_125X, long y_126X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_140X;
  char v_139X;
  char * external_bignum_138X;
  char * y_137X;
  char * v_136X;
  long value_135X;
  char * x_134X;
  char * v_133X;
  long value_132X;
  long v_131X;
  long extra1_130X;
  long length1_129X;
  long extra0_128X;
  long length0_127X;
 {  if ((0 == (3 & x_125X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17352;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_125X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17352;}}
 L17352: {
  length0_127X = arg0K0;
  extra0_128X = arg0K1;
  if ((0 == (3 & y_126X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17360;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_126X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17360;}}
 L17360: {
  length1_129X = arg0K0;
  extra1_130X = arg0K1;
  if ((length0_127X < length1_129X)) {
    arg0K0 = length1_129X;
    goto L17382;}
  else {
    arg0K0 = length0_127X;
    goto L17382;}}
 L17382: {
  v_131X = arg0K0;
  Stemp0S = x_125X;
  Stemp1S = y_126X;s48_make_availableAgc(((((((1 + ((((11 + (((v_131X)<<2))))>>2))) + extra0_128X) + extra1_130X))<<2)));
  value_132X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_132X))) {
    v_133X = (char *) s48_long_to_bignum((((value_132X)>>2)));
    arg1K0 = v_133X;
    goto L20120;}
  else {
    arg1K0 = (((char *) (-3 + value_132X)));
    goto L20120;}}
 L20120: {
  x_134X = arg1K0;
  value_135X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_135X))) {
    v_136X = (char *) s48_long_to_bignum((((value_135X)>>2)));
    arg1K0 = v_136X;
    goto L20124;}
  else {
    arg1K0 = (((char *) (-3 + value_135X)));
    goto L20124;}}
 L20124: {
  y_137X = arg1K0;
  external_bignum_138X = (char *)s48_bignum_add(x_134X, y_137X);
  v_139X = s48_bignum_fits_in_word_p(external_bignum_138X, 30, 1);
  if (v_139X) {
    n_140X = s48_bignum_to_long(external_bignum_138X);
    return (((n_140X)<<2));}
  else {
    return enter_bignum(external_bignum_138X);}}
}
static long integer_subtract(long x_141X, long y_142X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_156X;
  char v_155X;
  char * external_bignum_154X;
  char * y_153X;
  char * v_152X;
  long value_151X;
  char * x_150X;
  char * v_149X;
  long value_148X;
  long v_147X;
  long extra1_146X;
  long length1_145X;
  long extra0_144X;
  long length0_143X;
 {  if ((0 == (3 & x_141X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17309;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_141X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17309;}}
 L17309: {
  length0_143X = arg0K0;
  extra0_144X = arg0K1;
  if ((0 == (3 & y_142X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17317;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_142X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17317;}}
 L17317: {
  length1_145X = arg0K0;
  extra1_146X = arg0K1;
  if ((length0_143X < length1_145X)) {
    arg0K0 = length1_145X;
    goto L17339;}
  else {
    arg0K0 = length0_143X;
    goto L17339;}}
 L17339: {
  v_147X = arg0K0;
  Stemp0S = x_141X;
  Stemp1S = y_142X;s48_make_availableAgc(((((((1 + ((((11 + (((v_147X)<<2))))>>2))) + extra0_144X) + extra1_146X))<<2)));
  value_148X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_148X))) {
    v_149X = (char *) s48_long_to_bignum((((value_148X)>>2)));
    arg1K0 = v_149X;
    goto L20194;}
  else {
    arg1K0 = (((char *) (-3 + value_148X)));
    goto L20194;}}
 L20194: {
  x_150X = arg1K0;
  value_151X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_151X))) {
    v_152X = (char *) s48_long_to_bignum((((value_151X)>>2)));
    arg1K0 = v_152X;
    goto L20198;}
  else {
    arg1K0 = (((char *) (-3 + value_151X)));
    goto L20198;}}
 L20198: {
  y_153X = arg1K0;
  external_bignum_154X = (char *)s48_bignum_subtract(x_150X, y_153X);
  v_155X = s48_bignum_fits_in_word_p(external_bignum_154X, 30, 1);
  if (v_155X) {
    n_156X = s48_bignum_to_long(external_bignum_154X);
    return (((n_156X)<<2));}
  else {
    return enter_bignum(external_bignum_154X);}}
}
static long integer_multiply(long x_157X, long y_158X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_171X;
  char v_170X;
  char * external_bignum_169X;
  char * y_168X;
  char * v_167X;
  long value_166X;
  char * x_165X;
  char * v_164X;
  long value_163X;
  long extra1_162X;
  long length1_161X;
  long extra0_160X;
  long length0_159X;
 {  if ((0 == (3 & x_157X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17272;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_157X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17272;}}
 L17272: {
  length0_159X = arg0K0;
  extra0_160X = arg0K1;
  if ((0 == (3 & y_158X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17280;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_158X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17280;}}
 L17280: {
  length1_161X = arg0K0;
  extra1_162X = arg0K1;
  Stemp0S = x_157X;
  Stemp1S = y_158X;s48_make_availableAgc(((((((1 + ((((7 + ((((length0_159X + length1_161X))<<2))))>>2))) + extra0_160X) + extra1_162X))<<2)));
  value_163X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_163X))) {
    v_164X = (char *) s48_long_to_bignum((((value_163X)>>2)));
    arg1K0 = v_164X;
    goto L20268;}
  else {
    arg1K0 = (((char *) (-3 + value_163X)));
    goto L20268;}}
 L20268: {
  x_165X = arg1K0;
  value_166X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_166X))) {
    v_167X = (char *) s48_long_to_bignum((((value_166X)>>2)));
    arg1K0 = v_167X;
    goto L20272;}
  else {
    arg1K0 = (((char *) (-3 + value_166X)));
    goto L20272;}}
 L20272: {
  y_168X = arg1K0;
  external_bignum_169X = (char *)s48_bignum_multiply(x_165X, y_168X);
  v_170X = s48_bignum_fits_in_word_p(external_bignum_169X, 30, 1);
  if (v_170X) {
    n_171X = s48_bignum_to_long(external_bignum_169X);
    return (((n_171X)<<2));}
  else {
    return enter_bignum(external_bignum_169X);}}
}
static long integer_bitwise_not(long x_172X)
{
  long arg0K1;
  long arg0K0;
  char * arg1K0;
  long n_181X;
  char v_180X;
  char * external_bignum_179X;
  char * v_178X;
  char * v_177X;
  long value_176X;
  long v_175X;
  long extra_174X;
  long length_173X;
 {  if ((0 == (3 & x_172X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20641;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_172X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20641;}}
 L20641: {
  length_173X = arg0K0;
  extra_174X = arg0K1;
  if ((length_173X < 1)) {
    arg0K0 = 1;
    goto L20643;}
  else {
    arg0K0 = length_173X;
    goto L20643;}}
 L20643: {
  v_175X = arg0K0;
  Stemp0S = x_172X;s48_make_availableAgc((((((1 + ((((11 + (((v_175X)<<2))))>>2))) + extra_174X))<<2)));
  value_176X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_176X))) {
    v_177X = (char *) s48_long_to_bignum((((value_176X)>>2)));
    arg1K0 = v_177X;
    goto L20633;}
  else {
    arg1K0 = (((char *) (-3 + value_176X)));
    goto L20633;}}
 L20633: {
  v_178X = arg1K0;
  external_bignum_179X = (char *) s48_bignum_bitwise_not(v_178X);
  v_180X = s48_bignum_fits_in_word_p(external_bignum_179X, 30, 1);
  if (v_180X) {
    n_181X = s48_bignum_to_long(external_bignum_179X);
    return (((n_181X)<<2));}
  else {
    return enter_bignum(external_bignum_179X);}}
}
static long integer_bitwise_and(long x_182X, long y_183X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_197X;
  char v_196X;
  char * external_bignum_195X;
  char * y_194X;
  char * v_193X;
  long value_192X;
  char * x_191X;
  char * v_190X;
  long value_189X;
  long v_188X;
  long extra1_187X;
  long length1_186X;
  long extra0_185X;
  long length0_184X;
 {  if ((0 == (3 & x_182X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17091;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_182X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17091;}}
 L17091: {
  length0_184X = arg0K0;
  extra0_185X = arg0K1;
  if ((0 == (3 & y_183X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17099;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_183X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17099;}}
 L17099: {
  length1_186X = arg0K0;
  extra1_187X = arg0K1;
  if ((length0_184X < length1_186X)) {
    arg0K0 = length1_186X;
    goto L17121;}
  else {
    arg0K0 = length0_184X;
    goto L17121;}}
 L17121: {
  v_188X = arg0K0;
  Stemp0S = x_182X;
  Stemp1S = y_183X;s48_make_availableAgc(((((((1 + ((((11 + (((v_188X)<<2))))>>2))) + extra0_185X) + extra1_187X))<<2)));
  value_189X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_189X))) {
    v_190X = (char *) s48_long_to_bignum((((value_189X)>>2)));
    arg1K0 = v_190X;
    goto L20700;}
  else {
    arg1K0 = (((char *) (-3 + value_189X)));
    goto L20700;}}
 L20700: {
  x_191X = arg1K0;
  value_192X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_192X))) {
    v_193X = (char *) s48_long_to_bignum((((value_192X)>>2)));
    arg1K0 = v_193X;
    goto L20704;}
  else {
    arg1K0 = (((char *) (-3 + value_192X)));
    goto L20704;}}
 L20704: {
  y_194X = arg1K0;
  external_bignum_195X = (char *) s48_bignum_bitwise_and(x_191X, y_194X);
  v_196X = s48_bignum_fits_in_word_p(external_bignum_195X, 30, 1);
  if (v_196X) {
    n_197X = s48_bignum_to_long(external_bignum_195X);
    return (((n_197X)<<2));}
  else {
    return enter_bignum(external_bignum_195X);}}
}
static long integer_bitwise_ior(long x_198X, long y_199X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_213X;
  char v_212X;
  char * external_bignum_211X;
  char * y_210X;
  char * v_209X;
  long value_208X;
  char * x_207X;
  char * v_206X;
  long value_205X;
  long v_204X;
  long extra1_203X;
  long length1_202X;
  long extra0_201X;
  long length0_200X;
 {  if ((0 == (3 & x_198X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17048;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_198X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17048;}}
 L17048: {
  length0_200X = arg0K0;
  extra0_201X = arg0K1;
  if ((0 == (3 & y_199X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17056;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_199X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17056;}}
 L17056: {
  length1_202X = arg0K0;
  extra1_203X = arg0K1;
  if ((length0_200X < length1_202X)) {
    arg0K0 = length1_202X;
    goto L17078;}
  else {
    arg0K0 = length0_200X;
    goto L17078;}}
 L17078: {
  v_204X = arg0K0;
  Stemp0S = x_198X;
  Stemp1S = y_199X;s48_make_availableAgc(((((((1 + ((((11 + (((v_204X)<<2))))>>2))) + extra0_201X) + extra1_203X))<<2)));
  value_205X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_205X))) {
    v_206X = (char *) s48_long_to_bignum((((value_205X)>>2)));
    arg1K0 = v_206X;
    goto L20774;}
  else {
    arg1K0 = (((char *) (-3 + value_205X)));
    goto L20774;}}
 L20774: {
  x_207X = arg1K0;
  value_208X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_208X))) {
    v_209X = (char *) s48_long_to_bignum((((value_208X)>>2)));
    arg1K0 = v_209X;
    goto L20778;}
  else {
    arg1K0 = (((char *) (-3 + value_208X)));
    goto L20778;}}
 L20778: {
  y_210X = arg1K0;
  external_bignum_211X = (char *) s48_bignum_bitwise_ior(x_207X, y_210X);
  v_212X = s48_bignum_fits_in_word_p(external_bignum_211X, 30, 1);
  if (v_212X) {
    n_213X = s48_bignum_to_long(external_bignum_211X);
    return (((n_213X)<<2));}
  else {
    return enter_bignum(external_bignum_211X);}}
}
static long integer_bitwise_xor(long x_214X, long y_215X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long n_229X;
  char v_228X;
  char * external_bignum_227X;
  char * y_226X;
  char * v_225X;
  long value_224X;
  char * x_223X;
  char * v_222X;
  long value_221X;
  long v_220X;
  long extra1_219X;
  long length1_218X;
  long extra0_217X;
  long length0_216X;
 {  if ((0 == (3 & x_214X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17005;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_214X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17005;}}
 L17005: {
  length0_216X = arg0K0;
  extra0_217X = arg0K1;
  if ((0 == (3 & y_215X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L17013;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + y_215X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L17013;}}
 L17013: {
  length1_218X = arg0K0;
  extra1_219X = arg0K1;
  if ((length0_216X < length1_218X)) {
    arg0K0 = length1_218X;
    goto L17035;}
  else {
    arg0K0 = length0_216X;
    goto L17035;}}
 L17035: {
  v_220X = arg0K0;
  Stemp0S = x_214X;
  Stemp1S = y_215X;s48_make_availableAgc(((((((1 + ((((11 + (((v_220X)<<2))))>>2))) + extra0_217X) + extra1_219X))<<2)));
  value_221X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_221X))) {
    v_222X = (char *) s48_long_to_bignum((((value_221X)>>2)));
    arg1K0 = v_222X;
    goto L20848;}
  else {
    arg1K0 = (((char *) (-3 + value_221X)));
    goto L20848;}}
 L20848: {
  x_223X = arg1K0;
  value_224X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_224X))) {
    v_225X = (char *) s48_long_to_bignum((((value_224X)>>2)));
    arg1K0 = v_225X;
    goto L20852;}
  else {
    arg1K0 = (((char *) (-3 + value_224X)));
    goto L20852;}}
 L20852: {
  y_226X = arg1K0;
  external_bignum_227X = (char *) s48_bignum_bitwise_xor(x_223X, y_226X);
  v_228X = s48_bignum_fits_in_word_p(external_bignum_227X, 30, 1);
  if (v_228X) {
    n_229X = s48_bignum_to_long(external_bignum_227X);
    return (((n_229X)<<2));}
  else {
    return enter_bignum(external_bignum_227X);}}
}
static long Hinteger_op7480(long x_230X, long y_231X)
{
  long arg0K1;
  long arg0K0;
  char * arg1K0;
  long n_243X;
  char v_242X;
  char * external_bignum_241X;
  char * y_240X;
  char * v_239X;
  long value_238X;
  char * x_237X;
  char * v_236X;
  long value_235X;
  long extra1_234X;
  long extra0_233X;
  long length0_232X;
 {  if ((0 == (3 & x_230X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L20938;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_230X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L20938;}}
 L20938: {
  length0_232X = arg0K0;
  extra0_233X = arg0K1;
  if ((0 == (3 & y_231X))) {
    arg0K0 = 3;
    goto L20940;}
  else {
    arg0K0 = 0;
    goto L20940;}}
 L20940: {
  extra1_234X = arg0K0;
  Stemp0S = x_230X;
  Stemp1S = y_231X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_232X)<<2))))>>1)))) + extra0_233X) + extra1_234X))<<2)));
  value_235X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_235X))) {
    v_236X = (char *) s48_long_to_bignum((((value_235X)>>2)));
    arg1K0 = v_236X;
    goto L20922;}
  else {
    arg1K0 = (((char *) (-3 + value_235X)));
    goto L20922;}}
 L20922: {
  x_237X = arg1K0;
  value_238X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_238X))) {
    v_239X = (char *) s48_long_to_bignum((((value_238X)>>2)));
    arg1K0 = v_239X;
    goto L20926;}
  else {
    arg1K0 = (((char *) (-3 + value_238X)));
    goto L20926;}}
 L20926: {
  y_240X = arg1K0;
  external_bignum_241X = (char *)s48_bignum_quotient(x_237X, y_240X);
  v_242X = s48_bignum_fits_in_word_p(external_bignum_241X, 30, 1);
  if (v_242X) {
    n_243X = s48_bignum_to_long(external_bignum_241X);
    return (((n_243X)<<2));}
  else {
    return enter_bignum(external_bignum_241X);}}
}
static long Hinteger_op7411(long x_244X, long y_245X)
{
  long arg0K1;
  long arg0K0;
  char * arg1K0;
  long n_257X;
  char v_256X;
  char * external_bignum_255X;
  char * y_254X;
  char * v_253X;
  long value_252X;
  char * x_251X;
  char * v_250X;
  long value_249X;
  long extra1_248X;
  long extra0_247X;
  long length0_246X;
 {  if ((0 == (3 & x_244X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L21029;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_244X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L21029;}}
 L21029: {
  length0_246X = arg0K0;
  extra0_247X = arg0K1;
  if ((0 == (3 & y_245X))) {
    arg0K0 = 3;
    goto L21031;}
  else {
    arg0K0 = 0;
    goto L21031;}}
 L21031: {
  extra1_248X = arg0K0;
  Stemp0S = x_244X;
  Stemp1S = y_245X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_246X)<<2))))>>1)))) + extra0_247X) + extra1_248X))<<2)));
  value_249X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_249X))) {
    v_250X = (char *) s48_long_to_bignum((((value_249X)>>2)));
    arg1K0 = v_250X;
    goto L21013;}
  else {
    arg1K0 = (((char *) (-3 + value_249X)));
    goto L21013;}}
 L21013: {
  x_251X = arg1K0;
  value_252X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_252X))) {
    v_253X = (char *) s48_long_to_bignum((((value_252X)>>2)));
    arg1K0 = v_253X;
    goto L21017;}
  else {
    arg1K0 = (((char *) (-3 + value_252X)));
    goto L21017;}}
 L21017: {
  y_254X = arg1K0;
  external_bignum_255X = (char *)s48_bignum_remainder(x_251X, y_254X);
  v_256X = s48_bignum_fits_in_word_p(external_bignum_255X, 30, 1);
  if (v_256X) {
    n_257X = s48_bignum_to_long(external_bignum_255X);
    return (((n_257X)<<2));}
  else {
    return enter_bignum(external_bignum_255X);}}
}
static char for_each_imported_binding(char (*proc_258X)(long))
{
  long arg0K0;
  long link_265X;
  char x_264X;
  long entry_263X;
  long link_262X;
  char temp_261X;
  long i_260X;
  long table_259X;
 {  table_259X = Simported_bindingsS;
  arg0K0 = 0;
  goto L18730;}
 L18730: {
  i_260X = arg0K0;
  temp_261X = 1024 == i_260X;
  if (temp_261X) {
    return temp_261X;}
  else {
    link_262X = *((long *) ((((char *) (-3 + table_259X))) + (((i_260X)<<2))));
    if ((0 == (3 & link_262X))) {
      arg0K0 = (3 + (-4 & link_262X));
      goto L18702;}
    else {
      arg0K0 = link_262X;
      goto L18702;}}}
 L18702: {
  entry_263X = arg0K0;
  if ((1 == entry_263X)) {
    arg0K0 = (1 + i_260X);
    goto L18730;}
  else {
    x_264X = (*proc_258X)(entry_263X);
    if (x_264X) {
      link_265X = *((long *) ((((char *) (-3 + entry_263X))) + 12));
      if ((0 == (3 & link_265X))) {
        arg0K0 = (3 + (-4 & link_265X));
        goto L18702;}
      else {
        arg0K0 = link_265X;
        goto L18702;}}
    else {
      return 1;}}}
}
static long really_preserve_continuation(long key_266X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  char * next_279X;
  long pc_278X;
  char * pointer_277X;
  char * pointer_276X;
  long new_275X;
  char * addr_274X;
  long len_273X;
  long size_272X;
  long size_271X;
  char * pointer_270X;
  long previous_269X;
  char * cont_268X;
  long temp_267X;
 {  if (((ScontS) == (Sbottom_of_stackS))) {
    goto L21622;}
  else {
    temp_267X = Sheap_continuationS;
    arg1K0 = (ScontS);
    arg0K1 = 1;
    goto L21592;}}
 L21622: {
  return (Sheap_continuationS);}
 L21592: {
  cont_268X = arg1K0;
  previous_269X = arg0K1;
  if ((cont_268X == (Sbottom_of_stackS))) {
    *((long *) ((((char *) (-3 + previous_269X))) + 8)) = (long) (temp_267X);
    ScontS = (Sbottom_of_stackS);
    goto L21622;}
  else {
    pointer_270X = (((char *) (*((long *) cont_268X)))) + -2;
    size_271X = ((((*((unsigned char *) pointer_270X)))<<8)) + (*((unsigned char *) (pointer_270X + 1)));
    if ((65535 == size_271X)) {
      arg0K0 = ((((*((long *) (cont_268X + 4))))>>2));
      goto L19504;}
    else {
      arg0K0 = size_271X;
      goto L19504;}}}
 L19504: {
  size_272X = arg0K0;
  len_273X = 12 + (((size_272X)<<2));
  addr_274X = s48_allocate_small((4 + len_273X));
  *((long *) addr_274X) = (long) ((42 + (((len_273X)<<8))));
  new_275X = 3 + (((long) (addr_274X + 4)));
  pointer_276X = ((char *) (*((long *) cont_268X)));
  pointer_277X = pointer_276X + -5;
  pc_278X = ((((*((unsigned char *) pointer_277X)))<<8)) + (*((unsigned char *) (pointer_277X + 1)));
  memmove((void *)((((char *) (-3 + new_275X))) + 12), (void *)(cont_268X + 4),(((size_272X)<<2)));
  *((long *) (((char *) (-3 + new_275X)))) = (long) ((((pc_278X)<<2)));
  *((long *) ((((char *) (-3 + new_275X))) + 4)) = (long) ((3 + (((long) (pointer_276X + (0 - pc_278X))))));
  next_279X = cont_268X + (4 + (((size_272X)<<2)));
  if ((3 == (3 & previous_269X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + previous_269X))) + -4))))>>2))))) {
      *((long *) ((((char *) (-3 + previous_269X))) + 8)) = (long) (new_275X);
      arg1K0 = next_279X;
      arg0K1 = new_275X;
      goto L21592;}
    else {
      goto L21610;}}
  else {
    goto L21610;}}
 L21610: {
  Sheap_continuationS = new_275X;
  arg1K0 = next_279X;
  arg0K1 = new_275X;
  goto L21592;}
}
static void push_exception_setupB(long exception_280X, long instruction_size_281X)
{
  long n_293X;
  long data_292X;
  long n_291X;
  long code_290X;
  long pc_289X;
  char * code_pointer_288X;
  long x_287X;
  long data_286X;
  long n_285X;
  long pc_284X;
  char * code_pointer_283X;
  long code_282X;
 {  if ((0 == (Snative_exception_contS))) {
    code_282X = current_code_vector();
    code_pointer_283X = (((char *) (-3 + (Sexception_return_codeS)))) + 13;
    pc_284X = ((((Scode_pointerS) - (((char *) (-3 + code_282X)))))<<2);
    SstackS = ((SstackS) + -20);
    n_285X = ((((ScontS) - (SstackS)))>>2);
    data_286X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_286X)))) = (long) ((((n_285X)<<2)));
    *((long *) ((((char *) (-3 + data_286X))) + 4)) = (long) (pc_284X);
    *((long *) ((((char *) (-3 + data_286X))) + 8)) = (long) (code_282X);
    *((long *) ((((char *) (-3 + data_286X))) + 12)) = (long) ((((exception_280X)<<2)));
    *((long *) ((((char *) (-3 + data_286X))) + 16)) = (long) ((((instruction_size_281X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_283X)));
    ScontS = (SstackS);
    goto L21909;}
  else {
    x_287X = Snative_exception_contS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_287X);
    ScontS = (SstackS);
    ps_write_string("handling exception for nc ", (stderr));
    ps_write_integer((Snative_exception_contS), (stderr));
    code_pointer_288X = (((char *) (-3 + (Snative_exception_return_codeS)))) + 13;
    pc_289X = (((*((unsigned char *) (Scode_pointerS))))<<2);
    code_290X = Snative_exception_contS;
    SstackS = ((SstackS) + -20);
    n_291X = ((((ScontS) - (SstackS)))>>2);
    data_292X = 3 + (((long) (SstackS)));
    *((long *) (((char *) (-3 + data_292X)))) = (long) ((((n_291X)<<2)));
    *((long *) ((((char *) (-3 + data_292X))) + 4)) = (long) (pc_289X);
    *((long *) ((((char *) (-3 + data_292X))) + 8)) = (long) (code_290X);
    *((long *) ((((char *) (-3 + data_292X))) + 12)) = (long) ((((exception_280X)<<2)));
    *((long *) ((((char *) (-3 + data_292X))) + 16)) = (long) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((long) code_pointer_288X)));
    ScontS = (SstackS);
    Snative_exception_contS = 0;
    goto L21909;}}
 L21909: {
  n_293X = *((unsigned char *) (Scode_pointerS));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_293X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((exception_280X)<<2)));
  return;}
}
static long Hlookup2762(long table_294X, long string_295X, long key_296X)
{
  long arg0K1;
  long arg0K0;
  char * addr_311X;
  long value_310X;
  long link_309X;
  long x_308X;
  char * addr_307X;
  long next_306X;
  long len_305X;
  long s2_304X;
  long foo_303X;
  long bucket_302X;
  long link_301X;
  long index_300X;
  long h_299X;
  long i_298X;
  long n_297X;
 {  n_297X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_295X))) + -4))))>>8));
  arg0K0 = 0;
  arg0K1 = 0;
  goto L22763;}
 L22763: {
  i_298X = arg0K0;
  h_299X = arg0K1;
  if ((i_298X < n_297X)) {
    arg0K0 = (1 + i_298X);
    arg0K1 = (h_299X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + string_295X))) + i_298X))))))));
    goto L22763;}
  else {
    index_300X = 1023 & h_299X;
    link_301X = *((long *) ((((char *) (-3 + table_294X))) + (((index_300X)<<2))));
    if ((0 == (3 & link_301X))) {
      arg0K0 = (3 + (-4 & link_301X));
      goto L22719;}
    else {
      arg0K0 = link_301X;
      goto L22719;}}}
 L22719: {
  bucket_302X = arg0K0;
  arg0K0 = bucket_302X;
  goto L22725;}
 L22725: {
  foo_303X = arg0K0;
  if ((1 == foo_303X)) {
    if ((3 == (3 & bucket_302X))) {
      arg0K0 = (-4 & bucket_302X);
      goto L22730;}
    else {
      arg0K0 = bucket_302X;
      goto L22730;}}
  else {
    s2_304X = *((long *) (((char *) (-3 + foo_303X))));
    len_305X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_295X))) + -4))))>>8);
    if ((len_305X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_304X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_304X))), (void *)(((char *) (-3 + string_295X))),len_305X)))) {
        return foo_303X;}
      else {
        goto L22745;}}
    else {
      goto L22745;}}}
 L22730: {
  next_306X = arg0K0;
  addr_307X = s48_allocate_small(20);
  *((long *) addr_307X) = (long) (4154);
  x_308X = 3 + (((long) (addr_307X + 4)));
  *((long *) (((char *) (-3 + x_308X)))) = (long) (string_295X);
  *((long *) ((((char *) (-3 + x_308X))) + 4)) = (long) (1);
  *((long *) ((((char *) (-3 + x_308X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_308X))) + 12)) = (long) (next_306X);
  if ((3 == (3 & x_308X))) {
    arg0K0 = (-4 & x_308X);
    goto L22736;}
  else {
    arg0K0 = x_308X;
    goto L22736;}}
 L22745: {
  link_309X = *((long *) ((((char *) (-3 + foo_303X))) + 12));
  if ((0 == (3 & link_309X))) {
    arg0K0 = (3 + (-4 & link_309X));
    goto L22725;}
  else {
    arg0K0 = link_309X;
    goto L22725;}}
 L22736: {
  value_310X = arg0K0;
  addr_311X = (((char *) (-3 + table_294X))) + (((index_300X)<<2));S48_WRITE_BARRIER(table_294X, addr_311X, value_310X);
  *((long *) addr_311X) = (long) (value_310X);
  return x_308X;}
}
static long Hlookup2743(long table_312X, long string_313X, long key_314X)
{
  long arg0K1;
  long arg0K0;
  char * addr_329X;
  long value_328X;
  long link_327X;
  long x_326X;
  char * addr_325X;
  long next_324X;
  long len_323X;
  long s2_322X;
  long foo_321X;
  long bucket_320X;
  long link_319X;
  long index_318X;
  long h_317X;
  long i_316X;
  long n_315X;
 {  n_315X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_313X))) + -4))))>>8));
  arg0K0 = 0;
  arg0K1 = 0;
  goto L22915;}
 L22915: {
  i_316X = arg0K0;
  h_317X = arg0K1;
  if ((i_316X < n_315X)) {
    arg0K0 = (1 + i_316X);
    arg0K1 = (h_317X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + string_313X))) + i_316X))))))));
    goto L22915;}
  else {
    index_318X = 1023 & h_317X;
    link_319X = *((long *) ((((char *) (-3 + table_312X))) + (((index_318X)<<2))));
    if ((0 == (3 & link_319X))) {
      arg0K0 = (3 + (-4 & link_319X));
      goto L22871;}
    else {
      arg0K0 = link_319X;
      goto L22871;}}}
 L22871: {
  bucket_320X = arg0K0;
  arg0K0 = bucket_320X;
  goto L22877;}
 L22877: {
  foo_321X = arg0K0;
  if ((1 == foo_321X)) {
    if ((3 == (3 & bucket_320X))) {
      arg0K0 = (-4 & bucket_320X);
      goto L22882;}
    else {
      arg0K0 = bucket_320X;
      goto L22882;}}
  else {
    s2_322X = *((long *) (((char *) (-3 + foo_321X))));
    len_323X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_313X))) + -4))))>>8);
    if ((len_323X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_322X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_322X))), (void *)(((char *) (-3 + string_313X))),len_323X)))) {
        return foo_321X;}
      else {
        goto L22897;}}
    else {
      goto L22897;}}}
 L22882: {
  next_324X = arg0K0;
  addr_325X = s48_allocate_small(20);
  *((long *) addr_325X) = (long) (4154);
  x_326X = 3 + (((long) (addr_325X + 4)));
  *((long *) (((char *) (-3 + x_326X)))) = (long) (string_313X);
  *((long *) ((((char *) (-3 + x_326X))) + 4)) = (long) (5);
  *((long *) ((((char *) (-3 + x_326X))) + 8)) = (long) (13);
  *((long *) ((((char *) (-3 + x_326X))) + 12)) = (long) (next_324X);
  if ((3 == (3 & x_326X))) {
    arg0K0 = (-4 & x_326X);
    goto L22888;}
  else {
    arg0K0 = x_326X;
    goto L22888;}}
 L22897: {
  link_327X = *((long *) ((((char *) (-3 + foo_321X))) + 12));
  if ((0 == (3 & link_327X))) {
    arg0K0 = (3 + (-4 & link_327X));
    goto L22877;}
  else {
    arg0K0 = link_327X;
    goto L22877;}}
 L22888: {
  value_328X = arg0K0;
  addr_329X = (((char *) (-3 + table_312X))) + (((index_318X)<<2));S48_WRITE_BARRIER(table_312X, addr_329X, value_328X);
  *((long *) addr_329X) = (long) (value_328X);
  return x_326X;}
}
static void HtopD10644(void)
{
  long arg0K2;
  long arg0K1;
  long arg0K0;
  long id_372X;
  long new_371X;
  char * addr_370X;
  long val_369X;
  long channel_368X;
  long i_367X;
  long id_366X;
  long status_365X;
  long v_364X;
  char v_363X;
  long channel_362X;
  long i_361X;
  char * addr_360X;
  long next_link_359X;
  long new_foo_358X;
  char v_357X;
  char * addr_356X;
  long foo_355X;
  char * addr_354X;
  long l_353X;
  long v_352X;
  long okay_link_351X;
  long foo_link_350X;
  char * addr_349X;
  char * addr_348X;
  char * addr_347X;
  char * addr_346X;
  long val_345X;
  char tracedP_344X;
  long next_343X;
  long thing_342X;
  long pair_341X;
  long alist_340X;
  long l2_339X;
  long goners_338X;
  long okay_337X;
  long alist_336X;
  long foo_link_335X;
  long v_334X;
  long pc_333X;
  long code_332X;
  long i_331X;
  long table_330X;
 {  table_330X = s48_trace_value((Sthe_symbol_tableS));
  arg0K0 = 0;
  goto L23867;}
 L23867: {
  i_331X = arg0K0;
  if ((1024 == i_331X)) {
    Sthe_symbol_tableS = table_330X;
    code_332X = Slast_code_calledS;
    pc_333X = Ssaved_pcS;
    Slast_code_calledS = code_332X;
    Scode_pointerS = ((((char *) (-3 + code_332X))) + pc_333X);
    Slast_code_pointer_resumedS = (Scode_pointerS);
    v_334X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_334X;
    arg0K1 = 25;
    arg0K2 = 25;
    goto L11577;}
  else {
    foo_link_335X = *((long *) ((((char *) (-3 + table_330X))) + (((i_331X)<<2))));
    arg0K0 = foo_link_335X;
    arg0K1 = 1;
    goto L15556;}}
 L11577: {
  alist_336X = arg0K0;
  okay_337X = arg0K1;
  goners_338X = arg0K2;
  if ((25 == alist_336X)) {SHARED_SETB((Sfinalizer_alistS), okay_337X);
    l2_339X = Sfinalize_theseS;
    if ((25 == goners_338X)) {
      arg0K0 = l2_339X;
      goto L11584;}
    else {
      arg0K0 = goners_338X;
      goto L11639;}}
  else {
    alist_340X = s48_trace_value(alist_336X);
    pair_341X = s48_trace_value((*((long *) (((char *) (-3 + alist_340X))))));
    thing_342X = *((long *) (((char *) (-3 + pair_341X))));
    next_343X = *((long *) ((((char *) (-3 + alist_340X))) + 4));
    tracedP_344X = s48_extantP(thing_342X);
    val_345X = s48_trace_value(thing_342X);
    addr_346X = ((char *) (-3 + pair_341X));S48_WRITE_BARRIER(pair_341X, addr_346X, val_345X);
    *((long *) addr_346X) = (long) (val_345X);
    addr_347X = ((char *) (-3 + alist_340X));S48_WRITE_BARRIER(alist_340X, addr_347X, pair_341X);
    *((long *) addr_347X) = (long) (pair_341X);
    if (tracedP_344X) {
      addr_348X = (((char *) (-3 + alist_340X))) + 4;S48_WRITE_BARRIER(alist_340X, addr_348X, okay_337X);
      *((long *) addr_348X) = (long) (okay_337X);
      arg0K0 = next_343X;
      arg0K1 = alist_340X;
      arg0K2 = goners_338X;
      goto L11577;}
    else {
      addr_349X = (((char *) (-3 + alist_340X))) + 4;S48_WRITE_BARRIER(alist_340X, addr_349X, goners_338X);
      *((long *) addr_349X) = (long) (goners_338X);
      arg0K0 = next_343X;
      arg0K1 = okay_337X;
      arg0K2 = alist_340X;
      goto L11577;}}}
 L15556: {
  foo_link_350X = arg0K0;
  okay_link_351X = arg0K1;
  if ((0 == (3 & foo_link_350X))) {
    arg0K0 = (3 + (-4 & foo_link_350X));
    goto L15558;}
  else {
    arg0K0 = foo_link_350X;
    goto L15558;}}
 L11584: {
  v_352X = arg0K0;
  Sfinalize_theseS = v_352X;
  arg0K0 = 0;
  goto L22312;}
 L11639: {
  l_353X = arg0K0;
  if ((25 == (*((long *) ((((char *) (-3 + l_353X))) + 4))))) {
    addr_354X = (((char *) (-3 + l_353X))) + 4;S48_WRITE_BARRIER(l_353X, addr_354X, l2_339X);
    *((long *) addr_354X) = (long) (l2_339X);
    arg0K0 = goners_338X;
    goto L11584;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + l_353X))) + 4)));
    goto L11639;}}
 L15558: {
  foo_355X = arg0K0;
  if ((1 == foo_355X)) {
    addr_356X = (((char *) (-3 + table_330X))) + (((i_331X)<<2));S48_WRITE_BARRIER(table_330X, addr_356X, okay_link_351X);
    *((long *) addr_356X) = (long) (okay_link_351X);
    arg0K0 = (1 + i_331X);
    goto L23867;}
  else {
    v_357X = s48_extantP(foo_355X);
    if (v_357X) {
      new_foo_358X = s48_trace_value(foo_355X);
      next_link_359X = *((long *) ((((char *) (-3 + new_foo_358X))) + 4));
      addr_360X = (((char *) (-3 + new_foo_358X))) + 4;S48_WRITE_BARRIER(new_foo_358X, addr_360X, okay_link_351X);
      *((long *) addr_360X) = (long) (okay_link_351X);
      if ((3 == (3 & new_foo_358X))) {
        arg0K0 = next_link_359X;
        arg0K1 = (-4 & new_foo_358X);
        goto L15556;}
      else {
        arg0K0 = next_link_359X;
        arg0K1 = new_foo_358X;
        goto L15556;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + foo_355X))) + 4)));
      arg0K1 = okay_link_351X;
      goto L15556;}}}
 L22312: {
  i_361X = arg0K0;
  if ((i_361X == (Snumber_of_channelsS))) {
    arg0K0 = 0;
    goto L11709;}
  else {
    channel_362X = *((Svm_channelsS) + i_361X);
    if ((1 == channel_362X)) {
      goto L22346;}
    else {
      v_363X = s48_extantP(channel_362X);
      if (v_363X) {
        v_364X = s48_trace_value(channel_362X);
        arg0K0 = v_364X;
        goto L22339;}
      else {
        if ((0 == (*((long *) (((char *) (-3 + channel_362X))))))) {
          arg0K0 = 1;
          goto L22339;}
        else {
          status_365X = close_channelB(channel_362X);
          id_366X = *((long *) ((((char *) (-3 + channel_362X))) + 4));
          if ((status_365X == NO_ERRORS)) {
            goto L22370;}
          else {channel_close_error(status_365X, (*((long *) ((((char *) (-3 + channel_362X))) + 8))), id_366X);
            goto L22370;}}}}}}
 L11709: {
  i_367X = arg0K0;
  if ((i_367X == (Snumber_of_channelsS))) {
    Spending_interruptsS = (4 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        return;}
      else {
        return;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      return;}}
  else {
    channel_368X = *((Svm_channelsS) + i_367X);
    if ((1 == channel_368X)) {
      goto L11737;}
    else {
      if ((0 == (*((long *) (((char *) (-3 + channel_368X))))))) {
        goto L11737;}
      else {
        val_369X = s48_trace_value((*((long *) ((((char *) (-3 + channel_368X))) + 4))));
        addr_370X = (((char *) (-3 + channel_368X))) + 4;S48_WRITE_BARRIER(channel_368X, addr_370X, val_369X);
        *((long *) addr_370X) = (long) (val_369X);
        goto L11737;}}}}
 L22346: {
  arg0K0 = (1 + i_361X);
  goto L22312;}
 L22339: {
  new_371X = arg0K0;
  *((Svm_channelsS) + i_361X) = new_371X;
  goto L22346;}
 L22370: {
  if ((1 == (*((long *) ((((char *) (-3 + channel_362X))) + 12))))) {
    id_372X = *((long *) ((((char *) (-3 + channel_362X))) + 4));
    ps_write_string("Channel closed: ", (stderr));
    if ((0 == (3 & id_372X))) {
      ps_write_integer((((id_372X)>>2)), (stderr));
      goto L9713;}
    else {
      ps_write_string((((char *)(((char *) (-3 + id_372X))))), (stderr));
      goto L9713;}}
  else {
    arg0K0 = 1;
    goto L22339;}}
 L11737: {
  arg0K0 = (1 + i_367X);
  goto L11709;}
 L9713: {
  ps_write_string(" ", (stderr));
  ps_write_integer(((((*((long *) ((((char *) (-3 + channel_362X))) + 8))))>>2)), (stderr));
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  arg0K0 = 1;
  goto L22339;}
}
static void HtopD10655(void)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;
  long merged_arg0K0;

  int Hentry_tracer877373_return_tag;
  long Hentry_tracer8773730_return_value;
  long foo_link_374X;
  char * addr_443X;
  long next_link_442X;
  long new_foo_441X;
  long foo_440X;
  long done_link_439X;
  long foo_link_438X;
  long v_437X;
  long size_436X;
  char * pointer_435X;
  long v_434X;
  long v_433X;
  long v_432X;
  long cells_431X;
  long size_430X;
  char * pointer_429X;
  char * contents_pointer_428X;
  long new_code_427X;
  long mask_size_426X;
  char * code_pointer_425X;
  long pc_424X;
  char * pointer_423X;
  char * pointer_422X;
  char * cont_421X;
  char * addr_420X;
  long val_419X;
  long unused_418X;
  char * a_417X;
  char x_416X;
  long pair_415X;
  long v_414X;
  long v_413X;
  long alist_412X;
  char * addr_411X;
  long value_410X;
  long v_409X;
  long v_408X;
  long v_407X;
  long v_406X;
  long v_405X;
  long v_404X;
  long v_403X;
  long v_402X;
  long v_401X;
  long v_400X;
  long v_399X;
  long v_398X;
  long v_397X;
  long v_396X;
  long v_395X;
  long v_394X;
  long v_393X;
  long v_392X;
  long v_391X;
  long code_390X;
  long i_389X;
  char * addr_388X;
  long value_387X;
  long table_386X;
  long i_385X;
  long x2_384X;
  char * cell_383X;
  long i_382X;
  long x2_381X;
  char * cell_380X;
  long table_379X;
  char * frame_378X;
  long length_377X;
  char * frame_376X;
  long v_375X;
 {  v_375X = s48_trace_value((Sempty_logS));
  Sempty_logS = v_375X;
  arg1K0 = (Sexternal_root_stackS);
  goto L8285;}
 L8285: {
  frame_376X = arg1K0;
  if ((frame_376X == NULL)) {
    arg1K0 = (Spermanent_external_rootsS);
    goto L8311;}
  else {
    length_377X = *((long *) frame_376X);
    arg0K0 = 0;
    goto L8293;}}
 L8311: {
  frame_378X = arg1K0;
  if ((frame_378X == NULL)) {s48_initializing_gc_root();
    table_379X = s48_trace_value((Simported_bindingsS));
    arg0K0 = 0;
    goto L21399;}
  else {
    cell_380X = ((char *) (*((long *) (frame_378X + 8))));
    x2_381X = s48_trace_value((*((long *) cell_380X)));
    *((long *) cell_380X) = (long) (x2_381X);
    arg1K0 = (((char *) (*((long *) frame_378X))));
    goto L8311;}}
 L8293: {
  i_382X = arg0K0;
  if ((i_382X == length_377X)) {
    arg1K0 = (((char *) (*((long *) (frame_376X + 4)))));
    goto L8285;}
  else {
    cell_383X = ((char *) (*((long *) (frame_376X + (8 + (((i_382X)<<2)))))));
    x2_384X = s48_trace_value((*((long *) cell_383X)));
    *((long *) cell_383X) = (long) (x2_384X);
    arg0K0 = (1 + i_382X);
    goto L8293;}}
 L21399: {
  i_385X = arg0K0;
  if ((1024 == i_385X)) {
    Simported_bindingsS = table_379X;
    table_386X = s48_trace_value((Sexported_bindingsS));
    arg0K0 = 0;
    goto L21420;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_379X))) + (((i_385X)<<2)))));
    Hentry_tracer877373_return_tag = 0;
    goto Hentry_tracer877373;
   Hentry_tracer877373_return_0:
    value_387X = Hentry_tracer8773730_return_value;
    addr_388X = (((char *) (-3 + table_379X))) + (((i_385X)<<2));S48_WRITE_BARRIER(table_379X, addr_388X, value_387X);
    *((long *) addr_388X) = (long) (value_387X);
    arg0K0 = (1 + i_385X);
    goto L21399;}}
 L21420: {
  i_389X = arg0K0;
  if ((1024 == i_389X)) {
    Sexported_bindingsS = table_386X;
    code_390X = current_code_vector();
    Ssaved_pcS = ((Scode_pointerS) - (((char *) (-3 + code_390X))));
    v_391X = s48_trace_value(code_390X);
    Slast_code_calledS = v_391X;
    v_392X = s48_trace_value((SvalS));
    SvalS = v_392X;
    v_393X = s48_trace_value((Scurrent_threadS));
    Scurrent_threadS = v_393X;
    v_394X = s48_trace_value((Sinterrupted_byte_opcode_return_codeS));
    Sinterrupted_byte_opcode_return_codeS = v_394X;
    v_395X = s48_trace_value((Sinterrupted_native_call_return_codeS));
    Sinterrupted_native_call_return_codeS = v_395X;
    v_396X = s48_trace_value((Snative_poll_return_codeS));
    Snative_poll_return_codeS = v_396X;
    v_397X = s48_trace_value((Sexception_return_codeS));
    Sexception_return_codeS = v_397X;
    v_398X = s48_trace_value((Snative_exception_return_codeS));
    Snative_exception_return_codeS = v_398X;
    v_399X = s48_trace_value((Scall_with_values_return_codeS));
    Scall_with_values_return_codeS = v_399X;
    v_400X = s48_trace_value((Sinterrupted_templateS));
    Sinterrupted_templateS = v_400X;
    v_401X = SHARED_REF((Ssession_dataS));
    v_402X = s48_trace_value(v_401X);SHARED_SETB((Ssession_dataS), v_402X);
    v_403X = SHARED_REF((Sexception_handlersS));
    v_404X = s48_trace_value(v_403X);SHARED_SETB((Sexception_handlersS), v_404X);
    v_405X = SHARED_REF((Sinterrupt_handlersS));
    v_406X = s48_trace_value(v_405X);SHARED_SETB((Sinterrupt_handlersS), v_406X);
    v_407X = SHARED_REF((Sfinalize_theseS));
    v_408X = s48_trace_value(v_407X);SHARED_SETB((Sfinalize_theseS), v_408X);
    v_409X = SHARED_REF((Sfinalizer_alistS));
    arg0K0 = v_409X;
    goto L8351;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + table_386X))) + (((i_389X)<<2)))));
    Hentry_tracer877373_return_tag = 1;
    goto Hentry_tracer877373;
   Hentry_tracer877373_return_1:
    value_410X = Hentry_tracer8773730_return_value;
    addr_411X = (((char *) (-3 + table_386X))) + (((i_389X)<<2));S48_WRITE_BARRIER(table_386X, addr_411X, value_410X);
    *((long *) addr_411X) = (long) (value_410X);
    arg0K0 = (1 + i_389X);
    goto L21420;}}
 L8351: {
  alist_412X = arg0K0;
  if ((25 == alist_412X)) {
    v_413X = s48_trace_value((Spending_channels_headS));
    Spending_channels_headS = v_413X;
    v_414X = s48_trace_value((Spending_channels_tailS));
    Spending_channels_tailS = v_414X;
    if ((Sstack_warningPS)) {
      arg1K0 = (Sstack_beginS);
      goto L5647;}
    else {
      goto L15789;}}
  else {
    pair_415X = *((long *) (((char *) (-3 + alist_412X))));
    x_416X = s48_extantP((*((long *) (((char *) (-3 + pair_415X))))));
    if (x_416X) {
      goto L8376;}
    else {s48_trace_stob_contentsB((*((long *) (((char *) (-3 + pair_415X))))));
      goto L8376;}}}
 L5647: {
  a_417X = arg1K0;
  if ((252645135 == (*((long *) a_417X)))) {
    arg1K0 = (a_417X + 4);
    goto L5647;}
  else {
    unused_418X = (((a_417X - (Sstack_beginS)))>>2);
    if ((unused_418X < 30)) {
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      ps_write_string("[Alert: stack overconsumption (", (stderr));
      ps_write_integer(unused_418X, (stderr));
      ps_write_string("); please inform the Scheme 48 implementors]", (stderr));
      { long ignoreXX;
      PS_WRITE_CHAR(10, (stderr), ignoreXX) }
      Sstack_warningPS = 0;
      goto L15789;}
    else {
      goto L15789;}}}
 L15789: {
s48_trace_locationsB((SstackS), ((SstackS) + (-4 & ((ScontS) - (SstackS)))));
  arg1K0 = (ScontS);
  goto L15799;}
 L8376: {
  val_419X = s48_trace_value((*((long *) ((((char *) (-3 + pair_415X))) + 4))));
  addr_420X = (((char *) (-3 + pair_415X))) + 4;S48_WRITE_BARRIER(pair_415X, addr_420X, val_419X);
  *((long *) addr_420X) = (long) (val_419X);
  arg0K0 = (*((long *) ((((char *) (-3 + alist_412X))) + 4)));
  goto L8351;}
 L15799: {
  cont_421X = arg1K0;
  pointer_422X = ((char *) (*((long *) cont_421X)));
  pointer_423X = pointer_422X + -5;
  pc_424X = ((((*((unsigned char *) pointer_423X)))<<8)) + (*((unsigned char *) (pointer_423X + 1)));
  code_pointer_425X = ((char *) (*((long *) cont_421X)));
  mask_size_426X = *((unsigned char *) (code_pointer_425X + -3));
  new_code_427X = s48_trace_value((3 + (((long) (pointer_422X + (0 - pc_424X))))));
  contents_pointer_428X = cont_421X + 4;
  *((long *) cont_421X) = (long) ((((long) ((((char *) (-3 + new_code_427X))) + pc_424X))));
  if ((0 == mask_size_426X)) {
    pointer_429X = (((char *) (*((long *) cont_421X)))) + -2;
    size_430X = ((((*((unsigned char *) pointer_429X)))<<8)) + (*((unsigned char *) (pointer_429X + 1)));
    if ((65535 == size_430X)) {
      arg0K0 = ((((*((long *) (cont_421X + 4))))>>2));
      goto L12940;}
    else {
      arg0K0 = size_430X;
      goto L12940;}}
  else {s48_trace_continuation_contentsB(contents_pointer_428X, code_pointer_425X, mask_size_426X);
    goto L15809;}}
 L12940: {
  cells_431X = arg0K0;s48_trace_locationsB(contents_pointer_428X, (contents_pointer_428X + (((cells_431X)<<2))));
  goto L15809;}
 L15809: {
  if ((cont_421X == (Sbottom_of_stackS))) {
    v_432X = s48_trace_value((Sheap_continuationS));
    Sheap_continuationS = v_432X;
    v_433X = s48_trace_value((Stemp0S));
    Stemp0S = v_433X;
    v_434X = s48_trace_value((Stemp1S));
    Stemp1S = v_434X;
    return;}
  else {
    pointer_435X = (((char *) (*((long *) cont_421X)))) + -2;
    size_436X = ((((*((unsigned char *) pointer_435X)))<<8)) + (*((unsigned char *) (pointer_435X + 1)));
    if ((65535 == size_436X)) {
      arg0K0 = ((((*((long *) (cont_421X + 4))))>>2));
      goto L15847;}
    else {
      arg0K0 = size_436X;
      goto L15847;}}}
 L15847: {
  v_437X = arg0K0;
  arg1K0 = (cont_421X + (4 + (((v_437X)<<2))));
  goto L15799;}
 Hentry_tracer877373: {
  foo_link_374X = merged_arg0K0;{
  arg0K0 = foo_link_374X;
  arg0K1 = 1;
  goto L15628;}
 L15628: {
  foo_link_438X = arg0K0;
  done_link_439X = arg0K1;
  if ((0 == (3 & foo_link_438X))) {
    arg0K0 = (3 + (-4 & foo_link_438X));
    goto L15630;}
  else {
    arg0K0 = foo_link_438X;
    goto L15630;}}
 L15630: {
  foo_440X = arg0K0;
  if ((1 == foo_440X)) {
    Hentry_tracer8773730_return_value = done_link_439X;
    goto Hentry_tracer877373_return;}
  else {
    new_foo_441X = s48_trace_value(foo_440X);
    next_link_442X = *((long *) ((((char *) (-3 + new_foo_441X))) + 12));
    addr_443X = (((char *) (-3 + new_foo_441X))) + 12;S48_WRITE_BARRIER(new_foo_441X, addr_443X, done_link_439X);
    *((long *) addr_443X) = (long) (done_link_439X);
    if ((3 == (3 & new_foo_441X))) {
      arg0K0 = next_link_442X;
      arg0K1 = (-4 & new_foo_441X);
      goto L15628;}
    else {
      arg0K0 = next_link_442X;
      arg0K1 = new_foo_441X;
      goto L15628;}}}
 Hentry_tracer877373_return:
  switch (Hentry_tracer877373_return_tag) {
  case 0: goto Hentry_tracer877373_return_0;
  default: goto Hentry_tracer877373_return_1;
  }}

}
void s48_set_native_protocolB(long protocol_444X)
{

 {  s48_Snative_protocolS = protocol_444X;
  return;}
}
void s48_set_extension_valueB(long value_445X)
{

 {  s48_Sextension_valueS = value_445X;
  return;}
}
long s48_channel_count(void)
{

 {  return (Snumber_of_channelsS);}
}
long *s48_channels(void)
{

 {  return (Svm_channelsS);}
}
char s48_os_signal_pending(void)
{
  long arg0K0;
  long v_446X;
 {  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_endS))) {
    return 0;}
  else {
    if ((31 == (Sos_signal_ring_readyS))) {
      arg0K0 = 0;
      goto L3046;}
    else {
      arg0K0 = (1 + (Sos_signal_ring_readyS));
      goto L3046;}}}
 L3046: {
  v_446X = arg0K0;
  Sos_signal_ring_readyS = v_446X;
  return 1;}
}
long s48_imported_bindings(void)
{

 {  return (Simported_bindingsS);}
}
long s48_exported_bindings(void)
{

 {  return (Sexported_bindingsS);}
}
long s48_symbol_table(void)
{

 {  return (Sthe_symbol_tableS);}
}
char * s48_set_gc_roots_baseB(void)
{
  char * old_base_447X;
 {  old_base_447X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = (Sexternal_root_stackS);
  return old_base_447X;}
}
char s48_release_gc_roots_baseB(char * old_base_448X)
{
  char * current_base_449X;
 {  current_base_449X = Sexternal_root_stack_baseS;
  Sexternal_root_stack_baseS = old_base_448X;
  if (((Sexternal_root_stackS) == current_base_449X)) {
    return 1;}
  else {
    Sexternal_root_stackS = current_base_449X;
    return 0;}}
}
void s48_reset_external_rootsB(void)
{

 {  Sexternal_root_stackS = NULL;
  Sexternal_root_stack_baseS = NULL;
  Spermanent_external_rootsS = NULL;
  return;}
}
void s48_note_event(void)
{

 {  s48_Spending_eventsPS = 1;
  s48_Sstack_limitS = (((char *) -1));
  return;}
}
void s48_reset_interruptsB(void)
{

 {  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Senabled_interruptsS = 0;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  return;}
}
void s48_disable_interruptsB(void)
{

 {  s48_Spending_interruptPS = 0;
  Senabled_interruptsS = 0;
  return;}
}
void s48_add_os_signal(long sig_450X)
{
  long arg0K0;
  long v_451X;
 {  if ((31 == (Sos_signal_ring_endS))) {
    arg0K0 = 0;
    goto L3994;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_endS));
    goto L3994;}}
 L3994: {
  v_451X = arg0K0;
  Sos_signal_ring_endS = v_451X;
  if (((Sos_signal_ring_startS) == (Sos_signal_ring_endS))) {
    ps_error("OS signal ring too small, report to Scheme 48 maintainers", 0);
    goto L3996;}
  else {
    goto L3996;}}
 L3996: {
  *(Sos_signal_ringS + (Sos_signal_ring_endS)) = sig_450X;
  return;}
}
void s48_push_gc_rootsB(char * frame_452X, long n_453X)
{

 {  *((long *) frame_452X) = (long) (n_453X);
  *((long *) (frame_452X + 4)) = (long) ((((long) (Sexternal_root_stackS))));
  Sexternal_root_stackS = frame_452X;
  return;}
}
char * s48_register_gc_rootB(char * loc_addr_454X)
{
  char * x_456X;
  char * frame_455X;
 {  frame_455X = (char *)malloc(12);
  if ((frame_455X == NULL)) {
    ps_error("out of memory registering a global root", 0);
    goto L4202;}
  else {
    goto L4202;}}
 L4202: {
  *((long *) frame_455X) = (long) ((((long) (Spermanent_external_rootsS))));
  *((long *) (frame_455X + 4)) = (long) ((((long) NULL)));
  x_456X = Spermanent_external_rootsS;
  if ((x_456X == NULL)) {
    goto L4222;}
  else {
    *((long *) ((Spermanent_external_rootsS) + 4)) = (long) ((((long) frame_455X)));
    goto L4222;}}
 L4222: {
  *((long *) (frame_455X + 8)) = (long) ((((long) loc_addr_454X)));
  Spermanent_external_rootsS = frame_455X;
  return frame_455X;}
}
void s48_stack_setB(long x_457X, long value_458X)
{

 {  *((long *) ((SstackS) + (((x_457X)<<2)))) = (long) (value_458X);
  return;}
}
long s48_stack_ref(long i_459X)
{

 {  return (*((long *) ((SstackS) + (((i_459X)<<2)))));}
}
void s48_push(long x_460X)
{

 {  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_460X);
  return;}
}
long s48_resetup_external_exception(long new_why_461X, long additional_nargs_462X)
{
  long old_why_464X;
  long old_nargs_463X;
 {  old_nargs_463X = Sexternal_exception_nargsS;
  old_why_464X = *((long *) ((SstackS) + (((old_nargs_463X)<<2))));
  *((long *) ((SstackS) + (((old_nargs_463X)<<2)))) = (long) ((((new_why_461X)<<2)));
  Sexternal_exception_nargsS = (old_nargs_463X + additional_nargs_462X);
  return old_why_464X;}
}
char s48_pop_gc_rootsB(void)
{

 {  if (((Sexternal_root_stackS) == (Sexternal_root_stack_baseS))) {
    return 0;}
  else {
    Sexternal_root_stackS = (((char *) (*((long *) ((Sexternal_root_stackS) + 4)))));
    return 1;}}
}
void s48_unregister_gc_rootB(char * frame_465X)
{
  char * previous_467X;
  char * next_466X;
 {  if ((frame_465X == (Spermanent_external_rootsS))) {
    Spermanent_external_rootsS = (((char *) (*((long *) frame_465X))));
    goto L7078;}
  else {
    next_466X = ((char *) (*((long *) frame_465X)));
    previous_467X = ((char *) (*((long *) (frame_465X + 4))));
    *((long *) previous_467X) = (long) ((((long) next_466X)));
    if ((next_466X == NULL)) {
      goto L7078;}
    else {
      *((long *) (next_466X + 4)) = (long) ((((long) previous_467X)));
      goto L7078;}}}
 L7078: {
  free(frame_465X);
  return;}
}
char * s48_shorten_bignum(char * external_bignum_468X, long number_of_digits_469X)
{
  long waste_size_474X;
  long old_data_size_473X;
  long new_data_size_472X;
  long new_size_471X;
  long bignum_470X;
 {  bignum_470X = 3 + (((long) external_bignum_468X));
  new_size_471X = 4 + (-4 & (7 + (((number_of_digits_469X)<<2))));
  new_data_size_472X = -4 + new_size_471X;
  old_data_size_473X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + bignum_470X))) + -4))))>>8);
  waste_size_474X = old_data_size_473X - new_data_size_472X;
  if ((waste_size_474X < 0)) {
    ps_error("shorten bignum", 2, new_data_size_472X, old_data_size_473X);
    goto L7577;}
  else {
    goto L7577;}}
 L7577: {
  if ((waste_size_474X < 4)) {
    return external_bignum_468X;}
  else {
    *((long *) ((((char *) (-3 + bignum_470X))) + -4)) = (long) ((78 + (((new_data_size_472X)<<8))));
    *((long *) ((((char *) (((long) ((((char *) (-3 + bignum_470X))) + (-4 & (3 + new_size_471X))))))) + -4)) = (long) ((-946 + (((waste_size_474X)<<8))));
    return external_bignum_468X;}}
}
long s48_allocate_bignum(long size_475X)
{
  char * addr_476X;
 {  addr_476X = s48_allocate_small((4 + size_475X));
  *((long *) addr_476X) = (long) ((78 + (((size_475X)<<8))));
  return (3 + (((long) (addr_476X + 4))));}
}
void s48_enable_interruptsB(void)
{

 {  Senabled_interruptsS = -1;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      return;}
    else {
      return;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    return;}}
}
long s48_set_channel_os_index(long channel_477X, long os_index_478X)
{
  char * addr_485X;
  long val_484X;
  long v_483X;
  long x_482X;
  long old_index_481X;
  char x_480X;
  char temp_479X;
 {  temp_479X = os_index_478X < (Snumber_of_channelsS);
  if (temp_479X) {
    goto L11868;}
  else {
    x_480X = add_more_channels(os_index_478X);
    if (x_480X) {
      goto L11868;}
    else {
      return 36;}}}
 L11868: {
  if ((1 == (*((Svm_channelsS) + os_index_478X)))) {
    old_index_481X = (((*((long *) ((((char *) (-3 + channel_477X))) + 8))))>>2);
    x_482X = *((long *) ((((char *) (-3 + channel_477X))) + 20));
    if ((5 == x_482X)) {
      v_483X = ps_abort_fd_op(old_index_481X);enqueue_channelB(old_index_481X, v_483X, 1);
      goto L11854;}
    else {
      goto L11854;}}
  else {
    return 44;}}
 L11854: {
  *((Svm_channelsS) + old_index_481X) = 1;
  *((Svm_channelsS) + os_index_478X) = channel_477X;
  val_484X = ((os_index_478X)<<2);
  addr_485X = (((char *) (-3 + channel_477X))) + 8;S48_WRITE_BARRIER(channel_477X, addr_485X, val_484X);
  *((long *) addr_485X) = (long) (val_484X);
  return 5;}
}
long s48_integer_or_floanum_L(long x_486X, long y_487X)
{
  long v_490X;
  long v_489X;
  long v_488X;
 {  if ((3 == (3 & x_486X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_486X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_486X))))) < (*((double *) (((char *) (-3 + y_487X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L15012;}}
  else {
    goto L15012;}}
 L15012: {
  if ((0 == (3 & x_486X))) {
    if ((0 == (3 & y_487X))) {
      if ((x_486X < y_487X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_488X = s48_bignum_test((((char *) (-3 + y_487X))));
      if ((1 == v_488X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & y_487X))) {
      v_489X = s48_bignum_test((((char *) (-3 + x_486X))));
      if ((1 == v_489X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_490X = s48_bignum_compare((((char *) (-3 + x_486X))), (((char *) (-3 + y_487X))));
      if ((-1 == v_490X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_G(long x_491X, long y_492X)
{
  long v_495X;
  long v_494X;
  long v_493X;
 {  if ((3 == (3 & x_491X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_491X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_492X))))) < (*((double *) (((char *) (-3 + x_491X))))))) {
        return 5;}
      else {
        return 1;}}
    else {
      goto L15141;}}
  else {
    goto L15141;}}
 L15141: {
  if ((0 == (3 & y_492X))) {
    if ((0 == (3 & x_491X))) {
      if ((y_492X < x_491X)) {
        return 5;}
      else {
        return 1;}}
    else {
      v_493X = s48_bignum_test((((char *) (-3 + x_491X))));
      if ((1 == v_493X)) {
        return 5;}
      else {
        return 1;}}}
  else {
    if ((0 == (3 & x_491X))) {
      v_494X = s48_bignum_test((((char *) (-3 + y_492X))));
      if ((1 == v_494X)) {
        return 1;}
      else {
        return 5;}}
    else {
      v_495X = s48_bignum_compare((((char *) (-3 + y_492X))), (((char *) (-3 + x_491X))));
      if ((-1 == v_495X)) {
        return 5;}
      else {
        return 1;}}}}
}
long s48_integer_or_floanum_LE(long x_496X, long y_497X)
{
  char b_498X;
 {  if ((3 == (3 & x_496X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_496X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + y_497X))))) < (*((double *) (((char *) (-3 + x_496X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L15270;}}
  else {
    goto L15270;}}
 L15270: {
  b_498X = integerLE(x_496X, y_497X);
  if (b_498X) {
    return 5;}
  else {
    return 1;}}
}
long s48_integer_or_floanum_GE(long x_499X, long y_500X)
{
  char b_501X;
 {  if ((3 == (3 & x_499X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_499X))) + -4))))>>2))))) {
      if (((*((double *) (((char *) (-3 + x_499X))))) < (*((double *) (((char *) (-3 + y_500X))))))) {
        return 1;}
      else {
        return 5;}}
    else {
      goto L15347;}}
  else {
    goto L15347;}}
 L15347: {
  b_501X = integerGE(x_499X, y_500X);
  if (b_501X) {
    return 5;}
  else {
    return 1;}}
}
long s48_make_blank_return_code(long protocol_502X, long template_503X, long frame_size_504X, long opcode_count_505X)
{

 {s48_make_availableAgc((4 + (-4 & (18 + opcode_count_505X))));
  return make_blank_return_code(protocol_502X, template_503X, frame_size_504X, opcode_count_505X, 0);}
}
long s48_integer_or_floanum_E(long x_506X, long y_507X)
{
  char arg2K0;
  char v_509X;
  char b_508X;
 {  if ((3 == (3 & x_506X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_506X))) + -4))))>>2))))) {
      arg2K0 = ((*((double *) (((char *) (-3 + x_506X))))) == (*((double *) (((char *) (-3 + y_507X))))));
      goto L17626;}
    else {
      goto L17622;}}
  else {
    goto L17622;}}
 L17626: {
  b_508X = arg2K0;
  if (b_508X) {
    return 5;}
  else {
    return 1;}}
 L17622: {
  v_509X = integerE(x_506X, y_507X);
  arg2K0 = v_509X;
  goto L17626;}
}
void s48_close_channel(long os_index_510X)
{
  long obj_511X;
 {  if ((os_index_510X < 0)) {
    return;}
  else {
    if ((os_index_510X < (Snumber_of_channelsS))) {
      obj_511X = *((Svm_channelsS) + os_index_510X);
      if ((3 == (3 & obj_511X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_511X))) + -4))))>>2))))) {close_channelB((*((Svm_channelsS) + os_index_510X)));
          return;}
        else {
          return;}}
      else {
        return;}}
    else {
      return;}}}
}
void check_stack(void)
{
  char * arg1K0;
  char * arg1K1;
  long arg0K0;
  long v_533X;
  long address_532X;
  long x_531X;
  char * ptr_530X;
  long mask_529X;
  long size_528X;
  char * pointer_527X;
  long address_526X;
  long x_525X;
  char * addr_524X;
  char * trace_ptr_523X;
  char * mask_ptr_522X;
  long v_521X;
  char * mask_pointer_520X;
  long size_519X;
  char * pointer_518X;
  char * contents_pointer_517X;
  long mask_size_516X;
  char * code_pointer_515X;
  char * cont_514X;
  char * v_513X;
  char * v_512X;
 {  v_512X = s48_oldspace_begin();
  Soldspace_beginS = (((long) v_512X));
  v_513X = s48_oldspace_end();
  Soldspace_endS = (((long) v_513X));
  arg1K0 = (ScontS);
  goto L21448;}
 L21448: {
  cont_514X = arg1K0;
  if ((cont_514X == (Sbottom_of_stackS))) {
    return;}
  else {
    code_pointer_515X = ((char *) (*((long *) cont_514X)));
    mask_size_516X = *((unsigned char *) (code_pointer_515X + -3));
    contents_pointer_517X = cont_514X + 4;
    if ((0 == mask_size_516X)) {
      pointer_518X = (((char *) (*((long *) cont_514X)))) + -2;
      size_519X = ((((*((unsigned char *) pointer_518X)))<<8)) + (*((unsigned char *) (pointer_518X + 1)));
      if ((65535 == size_519X)) {
        arg0K0 = ((((*((long *) (cont_514X + 4))))>>2));
        goto L15770;}
      else {
        arg0K0 = size_519X;
        goto L15770;}}
    else {
      mask_pointer_520X = code_pointer_515X + -7;
      arg1K0 = (mask_pointer_520X + (0 - mask_size_516X));
      arg1K1 = contents_pointer_517X;
      goto L6009;}}}
 L15770: {
  v_521X = arg0K0;
  arg1K0 = contents_pointer_517X;
  goto L5950;}
 L6009: {
  mask_ptr_522X = arg1K0;
  trace_ptr_523X = arg1K1;
  if ((mask_ptr_522X == mask_pointer_520X)) {
    goto L18962;}
  else {
    arg0K0 = (*((unsigned char *) mask_ptr_522X));
    arg1K1 = trace_ptr_523X;
    goto L6017;}}
 L5950: {
  addr_524X = arg1K0;
  if ((addr_524X < (cont_514X + (4 + (((v_521X)<<2)))))) {
    x_525X = *((long *) addr_524X);
    if ((2 == (3 & x_525X))) {
      goto L5968;}
    else {
      if ((3 == (3 & x_525X))) {
        address_526X = -3 + x_525X;
        if ((address_526X < (Soldspace_beginS))) {
          goto L5955;}
        else {
          if (((Soldspace_endS) < address_526X)) {
            goto L5955;}
          else {
            goto L5968;}}}
      else {
        goto L5955;}}}
  else {
    goto L18962;}}
 L18962: {
  pointer_527X = (((char *) (*((long *) cont_514X)))) + -2;
  size_528X = ((((*((unsigned char *) pointer_527X)))<<8)) + (*((unsigned char *) (pointer_527X + 1)));
  if ((65535 == size_528X)) {
    arg0K0 = ((((*((long *) (cont_514X + 4))))>>2));
    goto L18967;}
  else {
    arg0K0 = size_528X;
    goto L18967;}}
 L6017: {
  mask_529X = arg0K0;
  ptr_530X = arg1K1;
  if ((0 == mask_529X)) {
    arg1K0 = (mask_ptr_522X + 1);
    arg1K1 = (trace_ptr_523X + 32);
    goto L6009;}
  else {
    if ((1 == (1 & mask_529X))) {
      x_531X = *((long *) ptr_530X);
      if ((2 == (3 & x_531X))) {
        goto L6074;}
      else {
        if ((3 == (3 & x_531X))) {
          address_532X = -3 + x_531X;
          if ((address_532X < (Soldspace_beginS))) {
            goto L6033;}
          else {
            if (((Soldspace_endS) < address_532X)) {
              goto L6033;}
            else {
              goto L6074;}}}
        else {
          goto L6033;}}}
    else {
      goto L6033;}}}
 L5968: {
  ps_error("bad descriptor in stack", 1, x_525X);
  goto L5955;}
 L5955: {
  arg1K0 = (addr_524X + 4);
  goto L5950;}
 L18967: {
  v_533X = arg0K0;
  arg1K0 = (cont_514X + (4 + (((v_533X)<<2))));
  goto L21448;}
 L6074: {
  ps_error("bad descriptor in stack", 1, x_531X);
  goto L6033;}
 L6033: {
  arg0K0 = (((mask_529X)>>1));
  arg1K1 = (ptr_530X + 4);
  goto L6017;}
}
long s48_really_add_channel(long mode_534X, long id_535X, long os_index_536X)
{
  long arg0K1;
  long arg0K0;
  long status_541X;
  long channel_540X;
  long channel_539X;
  char x_538X;
  char temp_537X;
 {s48_make_availableAgc(32);
  temp_537X = os_index_536X < (Snumber_of_channelsS);
  if (temp_537X) {
    goto L21537;}
  else {
    x_538X = add_more_channels(os_index_536X);
    if (x_538X) {
      goto L21537;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L21511;}}}
 L21537: {
  if ((1 == (*((Svm_channelsS) + os_index_536X)))) {
    channel_539X = make_channel((-4 & mode_534X), id_535X, (((os_index_536X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + os_index_536X) = channel_539X;
    arg0K0 = channel_539X;
    arg0K1 = 9;
    goto L21511;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L21511;}}
 L21511: {
  channel_540X = arg0K0;
  status_541X = arg0K1;
  if ((3 == (3 & channel_540X))) {
    if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_540X))) + -4))))>>2))))) {
      return channel_540X;}
    else {
      goto L21519;}}
  else {
    goto L21519;}}
 L21519: {
  return (((status_541X)<<2));}
}
long s48_integer_bit_count(long x_542X)
{

 {  return integer_bit_count(x_542X);}
}
long s48_enter_integer(long x_543X)
{
  char * v_544X;
 {s48_make_availableAgc(16);
  if ((536870911 < x_543X)) {
    goto L22100;}
  else {
    if ((x_543X < -536870912)) {
      goto L22100;}
    else {
      return (((x_543X)<<2));}}}
 L22100: {
  v_544X = (char *) s48_long_to_bignum(x_543X);
  return enter_bignum(v_544X);}
}
long s48_integer_or_floanum_add(long x_545X, long y_546X)
{
  long Kdouble_552X;
  char * addr_551X;
  double y_550X;
  long value_549X;
  double x_548X;
  long value_547X;
 {  if ((3 == (3 & x_545X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_545X))) + -4))))>>2))))) {
      Stemp0S = x_545X;
      Stemp1S = y_546X;s48_make_availableAgc(12);
      value_547X = Stemp0S;
      Stemp0S = 1;
      x_548X = *((double *) (((char *) (-3 + value_547X))));
      value_549X = Stemp1S;
      Stemp1S = 1;
      y_550X = *((double *) (((char *) (-3 + value_549X))));
      addr_551X = s48_allocate_small(12);
      *((long *) addr_551X) = (long) (2122);
      Kdouble_552X = 3 + (((long) (addr_551X + 4)));
      *((double *) (((char *) (-3 + Kdouble_552X)))) = (double) ((x_548X + y_550X));
      return Kdouble_552X;}
    else {
      return integer_add(x_545X, y_546X);}}
  else {
    return integer_add(x_545X, y_546X);}}
}
long s48_integer_or_floanum_sub(long x_553X, long y_554X)
{
  long Kdouble_560X;
  char * addr_559X;
  double y_558X;
  long value_557X;
  double x_556X;
  long value_555X;
 {  if ((3 == (3 & x_553X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_553X))) + -4))))>>2))))) {
      Stemp0S = x_553X;
      Stemp1S = y_554X;s48_make_availableAgc(12);
      value_555X = Stemp0S;
      Stemp0S = 1;
      x_556X = *((double *) (((char *) (-3 + value_555X))));
      value_557X = Stemp1S;
      Stemp1S = 1;
      y_558X = *((double *) (((char *) (-3 + value_557X))));
      addr_559X = s48_allocate_small(12);
      *((long *) addr_559X) = (long) (2122);
      Kdouble_560X = 3 + (((long) (addr_559X + 4)));
      *((double *) (((char *) (-3 + Kdouble_560X)))) = (double) ((x_556X - y_558X));
      return Kdouble_560X;}
    else {
      return integer_subtract(x_553X, y_554X);}}
  else {
    return integer_subtract(x_553X, y_554X);}}
}
long s48_integer_or_floanum_mul(long x_561X, long y_562X)
{
  long Kdouble_568X;
  char * addr_567X;
  double y_566X;
  long value_565X;
  double x_564X;
  long value_563X;
 {  if ((3 == (3 & x_561X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_561X))) + -4))))>>2))))) {
      Stemp0S = x_561X;
      Stemp1S = y_562X;s48_make_availableAgc(12);
      value_563X = Stemp0S;
      Stemp0S = 1;
      x_564X = *((double *) (((char *) (-3 + value_563X))));
      value_565X = Stemp1S;
      Stemp1S = 1;
      y_566X = *((double *) (((char *) (-3 + value_565X))));
      addr_567X = s48_allocate_small(12);
      *((long *) addr_567X) = (long) (2122);
      Kdouble_568X = 3 + (((long) (addr_567X + 4)));
      *((double *) (((char *) (-3 + Kdouble_568X)))) = (double) ((x_564X * y_566X));
      return Kdouble_568X;}
    else {
      return integer_multiply(x_561X, y_562X);}}
  else {
    return integer_multiply(x_561X, y_562X);}}
}
long s48_integer_bitwise_not(long x_569X)
{

 {  return integer_bitwise_not(x_569X);}
}
long s48_integer_bitwise_and(long x_570X, long y_571X)
{

 {  return integer_bitwise_and(x_570X, y_571X);}
}
long s48_integer_bitwise_ior(long x_572X, long y_573X)
{

 {  return integer_bitwise_ior(x_572X, y_573X);}
}
long s48_integer_bitwise_xor(long x_574X, long y_575X)
{

 {  return integer_bitwise_xor(x_574X, y_575X);}
}
void s48_setup_external_exception(long why_576X, long nargs_577X)
{

 {push_exception_setupB(why_576X, 1);
  if ((10 < nargs_577X)) {
    ps_error("too many arguments from external exception", 0);
    goto L23174;}
  else {
    goto L23174;}}
 L23174: {
  Sexternal_exception_nargsS = nargs_577X;
  Sexternal_exceptionPS = 1;
  return;}
}
long s48_integer_quotient(long x_578X, long y_579X)
{

 {  return Hinteger_op7480(x_578X, y_579X);}
}
long s48_integer_remainder(long x_580X, long y_581X)
{

 {  return Hinteger_op7411(x_580X, y_581X);}
}
void s48_copy_stack_into_heap(void)
{
  char * arg1K1;
  char * arg1K0;
  char * arg_585X;
  char * loc_584X;
  char * top_583X;
  long arg_count_582X;
 {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
  arg_count_582X = ((((ScontS) - (SstackS)))>>2);
  top_583X = SstackS;
  if ((1 == (((long) (ScontS))))) {
    goto L23270;}
  else {really_preserve_continuation(0);
    goto L23270;}}
 L23270: {
  SstackS = (ScontS);
  arg1K0 = ((SstackS) + -4);
  arg1K1 = (top_583X + (-4 + (((arg_count_582X)<<2))));
  goto L23299;}
 L23299: {
  loc_584X = arg1K0;
  arg_585X = arg1K1;
  if ((arg_585X < top_583X)) {
    SstackS = ((SstackS) + (0 - (((arg_count_582X)<<2))));
    return;}
  else {
    *((long *) loc_584X) = (long) ((*((long *) arg_585X)));
    arg1K0 = (loc_584X + -4);
    arg1K1 = (arg_585X + -4);
    goto L23299;}}
}
long s48_get_imported_binding(char *name_586X)
{
  long value_588X;
  long value_587X;
 {  value_587X = enter_stringAgc(name_586X);
  Stemp0S = value_587X;s48_make_availableAgc(20);
  value_588X = Stemp0S;
  Stemp0S = 1;
  return Hlookup2762((Sexported_bindingsS), value_588X, 0);}
}
void s48_define_exported_binding(char *name_589X, long value_590X)
{
  char * addr_595X;
  long x_594X;
  long value_593X;
  long value_592X;
  long name_591X;
 {  Stemp0S = value_590X;
  name_591X = enter_stringAgc(name_589X);
  Stemp1S = name_591X;s48_make_availableAgc(20);
  value_592X = Stemp1S;
  Stemp1S = 1;
  value_593X = Stemp0S;
  Stemp0S = 1;
  x_594X = Hlookup2743((Simported_bindingsS), value_592X, 0);
  addr_595X = (((char *) (-3 + x_594X))) + 8;S48_WRITE_BARRIER(x_594X, addr_595X, value_593X);
  *((long *) addr_595X) = (long) (value_593X);
  return;}
}
void s48_initialize_vm(char * stack_begin_596X, long stack_size_597X)
{
  char * arg1K0;
  long arg0K1;
  long arg0K0;

  int make_hash_tableAgc_return_tag;
  long make_hash_tableAgc0_return_value;
  char * addr_640X;
  long i_639X;
  long table_638X;
  long vector_637X;
  char * addr_636X;
  char * addr_635X;
  long x_634X;
  long v_633X;
  long vector_632X;
  char * addr_631X;
  long blank_return_code_630X;
  long blank_return_code_629X;
  long blank_return_code_628X;
  long blank_return_code_627X;
  long blank_return_code_626X;
  long blank_return_code_625X;
  long blank_return_code_624X;
  char * a_623X;
  char * addr_622X;
  long value_621X;
  long size_620X;
  char * start_619X;
  char * addr_618X;
  long val_617X;
  long index_616X;
  long h_615X;
  long i_614X;
  char * stack_613X;
  long n_612X;
  long string_611X;
  long foo_610X;
  long table_609X;
  long i_608X;
  long v_607X;
  long v_606X;
  long exported_bindings_605X;
  long imported_bindings_604X;
  long n_603X;
  long symbols_602X;
  long maybe_601X;
  long maybe_600X;
  long v_599X;
  long symbol_table_598X;
 {  symbol_table_598X = s48_initial_symbols();
  if ((symbol_table_598X == 1)) {
    make_hash_tableAgc_return_tag = 0;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_0:
    v_599X = make_hash_tableAgc0_return_value;
    Sthe_symbol_tableS = v_599X;
    maybe_600X = s48_find_all(1);
    if ((maybe_600X == 1)) {s48_collect();
      maybe_601X = s48_find_all(1);
      if ((maybe_601X == 1)) {
        ps_error("insufficient heap space to build symbol table", 0);
        arg0K0 = maybe_601X;
        goto L23350;}
      else {
        arg0K0 = maybe_601X;
        goto L23350;}}
    else {
      arg0K0 = maybe_600X;
      goto L23350;}}
  else {
    Sthe_symbol_tableS = symbol_table_598X;
    goto L24004;}}
 L23350: {
  symbols_602X = arg0K0;
  n_603X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + symbols_602X))) + -4))))>>8))))>>2);
  arg0K0 = 0;
  goto L23371;}
 L24004: {
  imported_bindings_604X = s48_initial_imported_bindings();
  exported_bindings_605X = s48_initial_exported_bindings();
  if ((1 == imported_bindings_604X)) {
    make_hash_tableAgc_return_tag = 1;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_1:
    v_606X = make_hash_tableAgc0_return_value;
    Simported_bindingsS = v_606X;
    make_hash_tableAgc_return_tag = 2;
    goto make_hash_tableAgc;
   make_hash_tableAgc_return_2:
    v_607X = make_hash_tableAgc0_return_value;
    Sexported_bindingsS = v_607X;
    goto L24010;}
  else {
    Simported_bindingsS = imported_bindings_604X;
    Sexported_bindingsS = exported_bindings_605X;
    goto L24010;}}
 L23371: {
  i_608X = arg0K0;
  if ((i_608X == n_603X)) {
    goto L24004;}
  else {
    table_609X = Sthe_symbol_tableS;
    foo_610X = *((long *) ((((char *) (-3 + symbols_602X))) + (((i_608X)<<2))));
    string_611X = *((long *) (((char *) (-3 + foo_610X))));
    n_612X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_611X))) + -4))))>>8));
    arg0K0 = 0;
    arg0K1 = 0;
    goto L22674;}}
 L24010: {
  if ((stack_size_597X < 8128)) {
    stack_613X = (char *)malloc(32512);
    if ((stack_613X == NULL)) {
      ps_error("out of memory, unable to continue", 0);
      arg1K0 = stack_613X;
      arg0K1 = 8128;
      goto L19709;}
    else {
      arg1K0 = stack_613X;
      arg0K1 = 8128;
      goto L19709;}}
  else {
    arg1K0 = stack_begin_596X;
    arg0K1 = stack_size_597X;
    goto L19709;}}
 L22674: {
  i_614X = arg0K0;
  h_615X = arg0K1;
  if ((i_614X < n_612X)) {
    arg0K0 = (1 + i_614X);
    arg0K1 = (h_615X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + string_611X))) + i_614X))))))));
    goto L22674;}
  else {
    index_616X = 1023 & h_615X;
    val_617X = *((long *) ((((char *) (-3 + table_609X))) + (((index_616X)<<2))));
    addr_618X = (((char *) (-3 + foo_610X))) + 4;S48_WRITE_BARRIER(foo_610X, addr_618X, val_617X);
    *((long *) addr_618X) = (long) (val_617X);
    if ((3 == (3 & foo_610X))) {
      arg0K0 = (-4 & foo_610X);
      goto L22660;}
    else {
      arg0K0 = foo_610X;
      goto L22660;}}}
 L19709: {
  start_619X = arg1K0;
  size_620X = arg0K1;
  Sstack_beginS = start_619X;
  Sstack_endS = (start_619X + (((size_620X)<<2)));
  Sreal_stack_limitS = ((Sstack_beginS) + 512);
  s48_Sstack_limitS = (Sreal_stack_limitS);
  SstackS = (Sstack_endS);
  ScontS = (((char *) 1));
  arg1K0 = start_619X;
  goto L19739;}
 L22660: {
  value_621X = arg0K0;
  addr_622X = (((char *) (-3 + table_609X))) + (((index_616X)<<2));S48_WRITE_BARRIER(table_609X, addr_622X, value_621X);
  *((long *) addr_622X) = (long) (value_621X);
  arg0K0 = (1 + i_608X);
  goto L23371;}
 L19739: {
  a_623X = arg1K0;
  if ((a_623X == (Sstack_endS))) {s48_make_availableAgc(20);
    blank_return_code_624X = make_blank_return_code(71, 65535, 0, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_624X))) + 15)) = (unsigned char) (0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    ScontS = (SstackS);
    *((long *) (ScontS)) = (long) ((((long) ((((char *) (-3 + blank_return_code_624X))) + 13))));
    Sbottom_of_stackS = (ScontS);
    Sheap_continuationS = 1;s48_make_availableAgc(120);
    blank_return_code_625X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_625X))) + 15)) = (unsigned char) (161);
    Sinterrupted_byte_opcode_return_codeS = blank_return_code_625X;
    blank_return_code_626X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_626X))) + 15)) = (unsigned char) (162);
    Sinterrupted_native_call_return_codeS = blank_return_code_626X;
    blank_return_code_627X = make_blank_return_code(66, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_627X))) + 15)) = (unsigned char) (163);
    Snative_poll_return_codeS = blank_return_code_627X;
    blank_return_code_628X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_628X))) + 15)) = (unsigned char) (157);
    Sexception_return_codeS = blank_return_code_628X;
    blank_return_code_629X = make_blank_return_code(1, 65535, 65535, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_629X))) + 15)) = (unsigned char) (158);
    Snative_exception_return_codeS = blank_return_code_629X;
    blank_return_code_630X = make_blank_return_code(70, 65535, 1, 1, 0);
    *((unsigned char *) ((((char *) (-3 + blank_return_code_630X))) + 15)) = (unsigned char) (0);
    Scall_with_values_return_codeS = blank_return_code_630X;s48_make_availableAgc(32);s48_bignum_make_cached_constants();
    addr_631X = s48_allocate_tracedAgc(8);
    if ((addr_631X == NULL)) {
      arg0K0 = 1;
      goto L24061;}
    else {
      *((long *) addr_631X) = (long) (1034);
      arg0K0 = (3 + (((long) (addr_631X + 4))));
      goto L24061;}}
  else {
    *((long *) a_623X) = (long) (252645135);
    arg1K0 = (a_623X + 4);
    goto L19739;}}
 L24061: {
  vector_632X = arg0K0;
  if ((1 == vector_632X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_632X;
    goto L24048;}
  else {
    arg0K0 = vector_632X;
    goto L24048;}}
 L24048: {
  v_633X = arg0K0;
  Sempty_logS = v_633X;
  x_634X = Sempty_logS;
  addr_635X = ((char *) (-3 + x_634X));S48_WRITE_BARRIER(x_634X, addr_635X, 1);
  *((long *) addr_635X) = (long) (1);
  return;}
 make_hash_tableAgc: {
{ addr_636X = s48_allocate_tracedAgc(4100);
  if ((addr_636X == NULL)) {
    arg0K0 = 1;
    goto L10351;}
  else {
    *((long *) addr_636X) = (long) (1048586);
    arg0K0 = (3 + (((long) (addr_636X + 4))));
    goto L10351;}}
 L10351: {
  vector_637X = arg0K0;
  if ((1 == vector_637X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_637X;
    goto L10339;}
  else {
    arg0K0 = vector_637X;
    goto L10339;}}
 L10339: {
  table_638X = arg0K0;
  arg0K0 = 0;
  goto L10374;}
 L10374: {
  i_639X = arg0K0;
  if ((1024 == i_639X)) {
    make_hash_tableAgc0_return_value = table_638X;
    goto make_hash_tableAgc_return;}
  else {
    addr_640X = (((char *) (-3 + table_638X))) + (((i_639X)<<2));S48_WRITE_BARRIER(table_638X, addr_640X, 1);
    *((long *) addr_640X) = (long) (1);
    arg0K0 = (1 + i_639X);
    goto L10374;}}
 make_hash_tableAgc_return:
  switch (make_hash_tableAgc_return_tag) {
  case 0: goto make_hash_tableAgc_return_0;
  case 1: goto make_hash_tableAgc_return_1;
  default: goto make_hash_tableAgc_return_2;
  }}

}
void s48_post_gc_cleanup(void)
{

 {  (Spost_gc_cleanupS)();
  return;}
}
void s48_gc_root(void)
{

 {  (Sgc_root_procS)();
  return;}
}
long s48_restart(long proc_641X, long nargs_642X)
{
  char *arg3K0;
  char * arg1K1;
  char * arg1K0;
  char arg2K3;
  char arg2K1;
  char arg2K0;
  char arg2K2;
  long arg0K4;
  long arg0K3;
  long arg0K2;
  long arg0K1;
  long arg0K0;
  char *merged_arg3K0;
  FILE * merged_arg4K2;
  char merged_arg2K1;
  char * merged_arg1K0;
  long merged_arg0K3;
  long merged_arg0K2;
  long merged_arg0K1;
  long merged_arg0K0;

  int move_args_above_contB_return_tag;
  int s48_pop_interrupt_state_return_tag;
  int get_error_string_return_tag;
  long get_error_string0_return_value;
  int copy_continuation_from_heapB_return_tag;
  char * copy_continuation_from_heapB0_return_value;
  int okay_argument_list_return_tag;
  char okay_argument_list0_return_value;
  long okay_argument_list1_return_value;
  int get_current_port_return_tag;
  long get_current_port0_return_value;
  int make_closure_return_tag;
  long make_closure0_return_value;
  int pending_interruptP_return_tag;
  char pending_interruptP0_return_value;
  int proposal_d_read_return_tag;
  long proposal_d_read0_return_value;
  int proposal_d_write_return_tag;
  int shift_space_return_tag;
  long shift_space0_return_value;
  int okay_copy_argsP_return_tag;
  char okay_copy_argsP0_return_value;
  int pop_continuationB_return_tag;
  int copy_listSAgc_return_tag;
  long copy_listSAgc0_return_value;
  int pop_args_GlistSAgc_return_tag;
  long pop_args_GlistSAgc0_return_value;
  int ensure_stack_spaceB_return_tag;
  char ensure_stack_spaceB0_return_value;
  int push_list_return_tag;
  long push_list0_return_value;
  int rest_list_setupAgc_return_tag;
  int find_template_return_tag;
  long find_template0_return_value;
  int maybe_write_template_return_tag;
  char maybe_write_template0_return_value;
  int loseD0_return_tag;
  long nargs_643X;
  long status_644X;
  long cont_645X;
  long stack_arg_count_646X;
  long list_647X;
  long marker_648X;
  long a_649X;
  long b_650X;
  long stob_651X;
  long index_652X;
  long stob_653X;
  long index_654X;
  long value_655X;
  long x_656X;
  long n_657X;
  long thing_658X;
  long index_659X;
  long count_660X;
  long list_661X;
  long length_662X;
  long start_663X;
  long count_664X;
  long need_665X;
  long list_666X;
  long count_667X;
  long wants_stack_args_668X;
  long stack_arg_count_669X;
  long list_args_670X;
  long list_arg_count_671X;
  char * start_672X;
  long count_673X;
  long code_vector_674X;
  long template_675X;
  char not_firstP_676X;
  FILE * out_677X;
  char *message_678X;
  char * arg_2036X;
  char * loc_2035X;
  char * top_of_args_2034X;
  char * addr_2033X;
  long x_2032X;
  long proposal_2031X;
  long p_2030X;
  long i_2029X;
  long string_2028X;
  char * addr_2027X;
  long len_2026X;
  long len_2025X;
  long x_2024X;
  char *string_2023X;
  char * new_stack_2022X;
  char * new_cont_2021X;
  long stack_size_2020X;
  char move_slowP_2019X;
  long slow_2018X;
  long len_2017X;
  long fast_2016X;
  char *v_2015X;
  long v_2014X;
  long obj_2013X;
  long env_2012X;
  long thread_2011X;
  long x_2010X;
  char * addr_2009X;
  long interrupt_bit_2008X;
  long status_2007X;
  long channel_2006X;
  long type_2005X;
  long v_2004X;
  long next_stob_2003X;
  long i_2002X;
  long log_2001X;
  char * addr_2000X;
  long next_stob_1999X;
  long i_1998X;
  long log_1997X;
  long v_1996X;
  long v_1995X;
  long n_1994X;
  long extra_1993X;
  long x_size_1992X;
  long v_1991X;
  long v_1990X;
  long size_1989X;
  char * pointer_1988X;
  char * cont_1987X;
  char * addr_1986X;
  long x_1985X;
  char * addr_1984X;
  long a_1983X;
  long last_1982X;
  long l_1981X;
  long x_1980X;
  char * addr_1979X;
  long a_1978X;
  long value_1977X;
  long x_1976X;
  char * addr_1975X;
  long a_1974X;
  long count_1973X;
  long args_1972X;
  long value_1971X;
  char interruptP_1970X;
  long x_1969X;
  long l_1968X;
  long i_1967X;
  long list_1966X;
  char v_1965X;
  long x_1964X;
  long v_1963X;
  long x_1962X;
  long v_1961X;
  long count_1960X;
  long x_1959X;
  long next_1958X;
  long i_1957X;
  long obj_1956X;
  long obj_1955X;
  long name_1954X;
  long v_1953X;
  long why_1952X;
  long size_1951X;
  char * pointer_1950X;
  char v_1949X;
  long v_1948X;
  long v_1947X;
  char v_1946X;
  long v_1945X;
  char not_firstP_1944X;
  long cont_1943X;
  long size_1942X;
  char * pointer_1941X;
  long v_1940X;
  char * pointer_1939X;
  char * code_pointer_1938X;
  long cont_1937X;
  char not_firstP_1936X;
  char * cont_1935X;
  char not_firstP_1934X;
  long template_1933X;
  FILE * out_1932X;
  long current_code_1931X;
  long v_1930X;
  long n_1929X;
  char v_1928X;
  long v_1927X;
  long v_1926X;
  long n_1925X;
  char v_1924X;
  long v_1923X;
  long y_1922X;
  long x_1921X;
  long rem_1920X;
  long quot_1919X;
  char div_by_zeroP_1918X;
  long v_1917X;
  long n_1916X;
  char v_1915X;
  long v_1914X;
  long v_1913X;
  long n_1912X;
  char v_1911X;
  long v_1910X;
  long link_1909X;
  long v_1908X;
  long v_1907X;
  long stob_1906X;
  long v_1905X;
  long stob_1904X;
  char * addr_1903X;
  long x_1902X;
  char * addr_1901X;
  char * addr_1900X;
  long value_1899X;
  char * addr_1898X;
  long value_1897X;
  long copies_1896X;
  long v_1895X;
  long n_1894X;
  char v_1893X;
  long v_1892X;
  long n_1891X;
  char v_1890X;
  char * rem_1889X;
  char * quot_1888X;
  char div_by_zeroP_1887X;
  char * y_1886X;
  char * addr_1885X;
  long val_1884X;
  char * addr_1883X;
  long value_1882X;
  long len_1881X;
  long s2_1880X;
  long foo_1879X;
  long previous_foo_1878X;
  long verify_1877X;
  long value_1876X;
  long copies_1875X;
  long stob_1874X;
  long i_1873X;
  long val_1872X;
  char * addr_1871X;
  long value_1870X;
  long val_1869X;
  char * v_1868X;
  long value_1867X;
  char * x_1866X;
  long val_1865X;
  long v_1864X;
  char * v_1863X;
  long bucket_1862X;
  char * addr_1861X;
  long verify_1860X;
  long value_1859X;
  long log_1858X;
  long stob_1857X;
  long i_1856X;
  long x_1855X;
  long x_1854X;
  char * addr_1853X;
  char * addr_1852X;
  long status_1851X;
  char pendingP_1850X;
  char eofP_1849X;
  long got_1848X;
  long y_1847X;
  long status_1846X;
  long v_1845X;
  long link_1844X;
  long val_1843X;
  long x_1842X;
  char * addr_1841X;
  long b_1840X;
  long val_1839X;
  long val_1838X;
  long n_1837X;
  char v_1836X;
  char * external_bignum_1835X;
  char * v_1834X;
  long value_1833X;
  long extra1_1832X;
  long val_1831X;
  long v_1830X;
  char * v_1829X;
  long val_1828X;
  long v_1827X;
  char * v_1826X;
  long x_1825X;
  long val_1824X;
  long v_1823X;
  char * v_1822X;
  char * addr_1821X;
  long value_1820X;
  long offset_1819X;
  long i_1818X;
  long count_1817X;
  char * addr_1816X;
  long value_1815X;
  long offset_1814X;
  long i_1813X;
  long count_1812X;
  long n_1811X;
  char *v_1810X;
  long link_1809X;
  long index_1808X;
  long h_1807X;
  long i_1806X;
  char * addr_1805X;
  char * addr_1804X;
  long value_1803X;
  char * addr_1802X;
  char * addr_1801X;
  char * addr_1800X;
  long value_1799X;
  char * addr_1798X;
  char * addr_1797X;
  long value_1796X;
  long proposal_1795X;
  long entry_1794X;
  long thing_1793X;
  long log_1792X;
  long copies_1791X;
  char * addr_1790X;
  long x_1789X;
  long val_1788X;
  long v_1787X;
  long reason_1786X;
  long channel_1785X;
  long channel_1784X;
  long len_1783X;
  long s2_1782X;
  long foo_1781X;
  long val_1780X;
  long v_1779X;
  long n_1778X;
  char v_1777X;
  char * external_bignum_1776X;
  char * x_1775X;
  char * v_1774X;
  long v_1773X;
  char * x_1772X;
  long val_1771X;
  long v_1770X;
  char * v_1769X;
  long n_1768X;
  long val_1767X;
  long val_1766X;
  long val_1765X;
  long val_1764X;
  long val_1763X;
  long val_1762X;
  long extra0_1761X;
  long length0_1760X;
  long val_1759X;
  long v_1758X;
  char * v_1757X;
  long x_1756X;
  long val_1755X;
  long v_1754X;
  char * v_1753X;
  long val_1752X;
  long val_1751X;
  long val_1750X;
  char * arg_1749X;
  char * loc_1748X;
  long x_1747X;
  long l_1746X;
  long stack_nargs_1745X;
  long x_1744X;
  long v_1743X;
  long x_1742X;
  long v_1741X;
  long v_1740X;
  long v_1739X;
  long bytes_used_1738X;
  long count_1737X;
  long index_1736X;
  long env_1735X;
  long offset_1734X;
  long i_1733X;
  long bytes_used_1732X;
  long count_1731X;
  long env_1730X;
  long offset_1729X;
  long i_1728X;
  long v_1727X;
  long n_1726X;
  long x_1725X;
  long x_1724X;
  long obj_1723X;
  long i_1722X;
  long l_1721X;
  long n_1720X;
  long table_1719X;
  long val_1718X;
  char x_1717X;
  char minutesP_1716X;
  long vector_1715X;
  char * addr_1714X;
  long x_1713X;
  long verify_1712X;
  long value_1711X;
  long copies_1710X;
  long stob_1709X;
  long i_1708X;
  char * addr_1707X;
  long v_1706X;
  char * addr_1705X;
  char * addr_1704X;
  long val_1703X;
  long x_1702X;
  char * addr_1701X;
  char * addr_1700X;
  long status_1699X;
  char pendingP_1698X;
  long got_1697X;
  long y_1696X;
  char v_1695X;
  long count_1694X;
  long start_1693X;
  char waitP_1692X;
  long status_1691X;
  long channel_1690X;
  long v_1689X;
  long v_1688X;
  char x_1687X;
  char temp_1686X;
  long index_1685X;
  long bucket_1684X;
  long i_1683X;
  long i_1682X;
  char * addr_1681X;
  long i_1680X;
  long rest_list_1679X;
  long i_1678X;
  long v_1677X;
  long n_1676X;
  char v_1675X;
  char * external_bignum_1674X;
  char * x_1673X;
  long val_1672X;
  long v_1671X;
  char * v_1670X;
  char * v_1669X;
  long value_1668X;
  long needed_1667X;
  long y_1666X;
  long y_1665X;
  long x_1664X;
  long val_1663X;
  long v_1662X;
  char * v_1661X;
  long val_1660X;
  long v_1659X;
  char * v_1658X;
  long val_1657X;
  long val_1656X;
  long val_1655X;
  long count_1654X;
  long x_1653X;
  char * v_1652X;
  long value_1651X;
  long extra_1650X;
  long length_1649X;
  long x_1648X;
  long val_1647X;
  long c_1646X;
  long b_1645X;
  long val_1644X;
  long c_1643X;
  long b_1642X;
  long val_1641X;
  char b_1640X;
  long val_1639X;
  char b_1638X;
  long val_1637X;
  long v_1636X;
  long v_1635X;
  long v_1634X;
  long val_1633X;
  long v_1632X;
  long v_1631X;
  long v_1630X;
  long val_1629X;
  char b_1628X;
  long result_1627X;
  char x_1626X;
  long c_1625X;
  long b_1624X;
  long val_1623X;
  long val_1622X;
  long val_1621X;
  long c_1620X;
  long mid_c_1619X;
  long v_1618X;
  long v_1617X;
  long lo_c_1616X;
  long hi_b_1615X;
  long hi_a_1614X;
  long lo_b_1613X;
  long lo_a_1612X;
  long b_1611X;
  long val_1610X;
  long args_1609X;
  char * arg_top_1608X;
  long list_arg_count_1607X;
  long list_args_1606X;
  long stack_nargs_1605X;
  long bytes_used_1604X;
  long count_1603X;
  long v_1602X;
  char * arg_1601X;
  char * loc_1600X;
  long v_1599X;
  long v_1598X;
  long v_1597X;
  long bytes_used_1596X;
  long args_1595X;
  long list_args_1594X;
  long stack_nargs_1593X;
  long v_1592X;
  long x_1591X;
  long v_1590X;
  long cont_1589X;
  long size_1588X;
  char * pointer_1587X;
  char * cont_1586X;
  long protocol_skip_1585X;
  long v_1584X;
  char v_1583X;
  char * addr_1582X;
  long value_1581X;
  long offset_1580X;
  long i_1579X;
  long count_1578X;
  char * addr_1577X;
  long value_1576X;
  long offset_1575X;
  long i_1574X;
  long count_1573X;
  long sig_1572X;
  char x_1571X;
  long channel_1570X;
  long arg_count_1569X;
  long obj_1568X;
  long type_1567X;
  long thing_1566X;
  long stuff_1565X;
  char * addr_1564X;
  long val_1563X;
  long i_1562X;
  long b_1561X;
  long port_1560X;
  long Kchar_1559X;
  long i_1558X;
  long p_1557X;
  long p_1556X;
  long b_1555X;
  long port_1554X;
  char * addr_1553X;
  long val_1552X;
  long i_1551X;
  long p_1550X;
  long p_1549X;
  long b_1548X;
  long port_1547X;
  char * addr_1546X;
  long value_1545X;
  long list_1544X;
  long head_1543X;
  char move_slowP_1542X;
  long slow_1541X;
  long list_1540X;
  long string_1539X;
  char * addr_1538X;
  long len_1537X;
  long x_1536X;
  long val_1535X;
  long mseconds_1534X;
  long seconds_1533X;
  long option_1532X;
  long vector_1531X;
  char firstP_1530X;
  long x_1529X;
  long x_1528X;
  long v_1527X;
  long v_1526X;
  long x_1525X;
  long result_1524X;
  char * args_1523X;
  long proc_1522X;
  long name_1521X;
  long rest_list_1520X;
  long x_1519X;
  long x_1518X;
  long x_1517X;
  long x_1516X;
  long value_1515X;
  long vector_1514X;
  long type_1513X;
  char firstP_1512X;
  long vector_1511X;
  char firstP_1510X;
  long x_1509X;
  long h_1508X;
  long i_1507X;
  long x_1506X;
  long x_1505X;
  long status_1504X;
  long reason_1503X;
  long x_1502X;
  char * addr_1501X;
  long next_stob_1500X;
  long i_1499X;
  long x_1498X;
  long v_1497X;
  long next_stob_1496X;
  long i_1495X;
  long value_1494X;
  char * addr_1493X;
  long count_1492X;
  long to_index_1491X;
  long from_index_1490X;
  long copies_1489X;
  long left_1488X;
  long value_1487X;
  long verify_1486X;
  long value_1485X;
  long log_1484X;
  long stob_1483X;
  long i_1482X;
  char * addr_1481X;
  long old_1480X;
  long x_1479X;
  char * addr_1478X;
  long channel_1477X;
  long res_1476X;
  long i_1475X;
  long x_1474X;
  long y_1473X;
  long n_1472X;
  char * addr_1471X;
  long prev_1470X;
  long ch_1469X;
  long x_1468X;
  long val_1467X;
  long x_1466X;
  long val_1465X;
  long x_1464X;
  long x_1463X;
  long x_1462X;
  long v_1461X;
  long v_1460X;
  long val_1459X;
  long x_1458X;
  char * addr_1457X;
  char * addr_1456X;
  long x_1455X;
  long val_1454X;
  long x_1453X;
  long link_1452X;
  long index_1451X;
  long h_1450X;
  long i_1449X;
  long x_1448X;
  long x_1447X;
  long x_1446X;
  long x_1445X;
  long vector_1444X;
  long x_1443X;
  long x_1442X;
  long x_1441X;
  long vector_1440X;
  long new_1439X;
  char * addr_1438X;
  long value_1437X;
  long value_1436X;
  long x_1435X;
  char * addr_1434X;
  long value_1433X;
  long i_1432X;
  long value_1431X;
  long i_1430X;
  long value_1429X;
  long val_1428X;
  long x_1427X;
  long val_1426X;
  long x_1425X;
  long val_1424X;
  long val_1423X;
  char * v_1422X;
  long value_1421X;
  long needed_1420X;
  long y_1419X;
  long x_1418X;
  long result_1417X;
  long x_1416X;
  long x_1415X;
  long x_1414X;
  long count_1413X;
  long value_1412X;
  long val_1411X;
  long val_1410X;
  long val_1409X;
  long x_1408X;
  long val_1407X;
  long x_1406X;
  long n_1405X;
  long x_1404X;
  long x_1403X;
  long v_1402X;
  long x_1401X;
  long n_1400X;
  long a_1399X;
  long a_1398X;
  long val_1397X;
  long val_1396X;
  char b_1395X;
  long val_1394X;
  char b_1393X;
  long val_1392X;
  char b_1391X;
  long val_1390X;
  long Kdouble_1389X;
  char * addr_1388X;
  double value_1387X;
  long value_1386X;
  double x_1385X;
  long value_1384X;
  long a_1383X;
  long Kdouble_1382X;
  char * addr_1381X;
  double y_1380X;
  long value_1379X;
  double x_1378X;
  long value_1377X;
  long val_1376X;
  long v_1375X;
  char * v_1374X;
  long Kdouble_1373X;
  char * addr_1372X;
  double y_1371X;
  long value_1370X;
  double x_1369X;
  long value_1368X;
  long a_1367X;
  long Kdouble_1366X;
  char * addr_1365X;
  double y_1364X;
  long value_1363X;
  double x_1362X;
  long value_1361X;
  long val_1360X;
  long v_1359X;
  char * v_1358X;
  long n_1357X;
  long val_1356X;
  long val_1355X;
  long delta_1354X;
  long delta_1353X;
  long offset_1352X;
  long index_1351X;
  long v_1350X;
  char * arg_top_1349X;
  long args_1348X;
  long count_1347X;
  long size_1346X;
  char * pointer_1345X;
  char * cont_1344X;
  long offset_1343X;
  long cont_1342X;
  long args_1341X;
  long args_1340X;
  long v_1339X;
  long v_1338X;
  long protocol_1337X;
  char * code_pointer_1336X;
  long list_arg_count_1335X;
  long list_args_1334X;
  long stack_nargs_1333X;
  long args_1332X;
  long x_1331X;
  long args_1330X;
  long x_1329X;
  long x_1328X;
  long x_1327X;
  char * addr_1326X;
  long a_1325X;
  long wants_stack_args_1324X;
  long size_1323X;
  char * pointer_1322X;
  char * cont_1321X;
  long proc_1320X;
  long offset_1319X;
  long cont_1318X;
  long protocol_1317X;
  char * code_pointer_1316X;
  long obj_1315X;
  char * addr_1314X;
  long list_args_1313X;
  long follower_1312X;
  long list_1311X;
  long x_1310X;
  long args_1309X;
  long list_arg_count_1308X;
  char okayP_1307X;
  long stack_nargs_1306X;
  long list_args_1305X;
  long obj_1304X;
  long obj_1303X;
  long list_arg_count_1302X;
  long list_args_1301X;
  long stack_arg_count_1300X;
  long obj_1299X;
  char interruptP_1298X;
  long protocol_1297X;
  long code_1296X;
  long template_1295X;
  long obj_1294X;
  long stack_arg_count_1293X;
  long value_1292X;
  long index_1291X;
  long value_1290X;
  long index_1289X;
  long value_1288X;
  long move_1287X;
  long index_1286X;
  long value_1285X;
  long move_1284X;
  long n_1283X;
  long value_1282X;
  long i_1281X;
  char * addr_1280X;
  long value_1279X;
  long offset_1278X;
  long i_1277X;
  long count_1276X;
  long total_count_1275X;
  long offset_1274X;
  long i_1273X;
  long new_env_1272X;
  char * addr_1271X;
  long value_1270X;
  long offset_1269X;
  long i_1268X;
  long count_1267X;
  long total_count_1266X;
  long offset_1265X;
  long i_1264X;
  long new_env_1263X;
  long v_1262X;
  long x_1261X;
  long x_1260X;
  long args_1259X;
  long length_1258X;
  char okayP_1257X;
  long list_args_1256X;
  long stack_nargs_1255X;
  long maybe_cont_1254X;
  long v_1253X;
  long v_1252X;
  long code_1251X;
  long n_1250X;
  char * addr_1249X;
  long x_1248X;
  long x_1247X;
  long x_1246X;
  char v_1245X;
  long return_address_1244X;
  long template_1243X;
  long obj_1242X;
  long stack_arg_count_1241X;
  long tag_1240X;
  long n_1239X;
  char v_1238X;
  char * addr_1237X;
  long next_1236X;
  long channel_1235X;
  long n_1234X;
  long x_1233X;
  long n_1232X;
  long x_1231X;
  long handlers_1230X;
  long m_1229X;
  long i_1228X;
  FILE * out_1227X;
  long x_1226X;
  long x_1225X;
  long val_1224X;
  long v_1223X;
  long v_1222X;
  long v_1221X;
  long v_1220X;
  long v_1219X;
  long v_1218X;
  long v_1217X;
  long x_1216X;
  long v_1215X;
  long len_1214X;
  long value_1213X;
  long index_1212X;
  long arg4_1211X;
  long arg3_1210X;
  long arg2_1209X;
  long x_1208X;
  long v_1207X;
  long v_1206X;
  long len_1205X;
  long index_1204X;
  long arg3_1203X;
  long arg2_1202X;
  long list_1201X;
  long arg2_1200X;
  long x_1199X;
  long n_1198X;
  long arg2_1197X;
  long len_1196X;
  long x_1195X;
  long obj_1194X;
  long arg2_1193X;
  long x_1192X;
  long arg2_1191X;
  long x_1190X;
  long status_1189X;
  long value_1188X;
  long key_1187X;
  long arg2_1186X;
  long x_1185X;
  long mseconds_1184X;
  long seconds_1183X;
  long mseconds_1182X;
  long seconds_1181X;
  long x_1180X;
  long other_1179X;
  long option_1178X;
  long arg2_1177X;
  long x_1176X;
  long arg2_1175X;
  long x_1174X;
  long arg2_1173X;
  long x_1172X;
  long rest_list_1171X;
  long p_1170X;
  long nargs_1169X;
  long p_1168X;
  long x_1167X;
  long arg2_1166X;
  long x_1165X;
  long p_1164X;
  long v_1163X;
  long v_1162X;
  long template_1161X;
  long return_address_1160X;
  long v_1159X;
  long p_1158X;
  long v_1157X;
  long v_1156X;
  long code_1155X;
  long pc_1154X;
  long p_1153X;
  long old_1152X;
  long temp_1151X;
  long obj_1150X;
  long opcode_1149X;
  long exception_1148X;
  long code_1147X;
  long data_1146X;
  long opcode_1145X;
  long pc_1144X;
  long size_1143X;
  long exception_1142X;
  long code_1141X;
  long data_1140X;
  long temp_1139X;
  long obj_1138X;
  long val_1137X;
  long x_1136X;
  long x_1135X;
  long type_1134X;
  long x_1133X;
  long x_1132X;
  long bytes_1131X;
  long x_1130X;
  long other_1129X;
  long key_1128X;
  long arg2_1127X;
  long x_1126X;
  char * addr_1125X;
  long b_1124X;
  long x_1123X;
  char * addr_1122X;
  long proc_1121X;
  long arg2_1120X;
  long n_1119X;
  long x_1118X;
  long obj_1117X;
  long status_1116X;
  long status_1115X;
  long status_1114X;
  long status_1113X;
  long status_1112X;
  long status_1111X;
  FILE * port_1110X;
  long undumpables_1109X;
  long obj_1108X;
  long arg4_1107X;
  long arg3_1106X;
  long arg2_1105X;
  long x_1104X;
  long log_1103X;
  long index_1102X;
  long x_1101X;
  long len_1100X;
  long byte_1099X;
  long index_1098X;
  long arg3_1097X;
  long arg2_1096X;
  long log_1095X;
  long index_1094X;
  long x_1093X;
  long len_1092X;
  long index_1091X;
  long arg2_1090X;
  long x_1089X;
  char v_1088X;
  char v_1087X;
  long v_1086X;
  long count_1085X;
  long to_index_1084X;
  long from_index_1083X;
  long arg5_1082X;
  long arg4_1081X;
  long arg3_1080X;
  long arg2_1079X;
  long v_1078X;
  long x_1077X;
  long offset_1076X;
  long type_1075X;
  long stob_1074X;
  long log_1073X;
  long proposal_1072X;
  long proposal_1071X;
  char * addr_1070X;
  long next_1069X;
  long channel_1068X;
  long n_1067X;
  char * addr_1066X;
  long head_1065X;
  long channel_1064X;
  long obj_1063X;
  long x_1062X;
  long status_1061X;
  char readyP_1060X;
  long channel_1059X;
  long obj_1058X;
  long x_1057X;
  char v_1056X;
  long count_1055X;
  long start_1054X;
  long arg4_1053X;
  long arg3_1052X;
  long arg2_1051X;
  long x_1050X;
  long arg5_1049X;
  long arg4_1048X;
  long arg3_1047X;
  long arg2_1046X;
  long x_1045X;
  long status_1044X;
  long channel_1043X;
  long obj_1042X;
  long x_1041X;
  long close_silentlyP_1040X;
  long mode_1039X;
  long arg3_1038X;
  long arg2_1037X;
  long x_1036X;
  long x_1035X;
  long x_1034X;
  long arg2_1033X;
  long descriptor_1032X;
  long x_1031X;
  long obj_1030X;
  long n_1029X;
  long string_1028X;
  long table_1027X;
  long obj_1026X;
  long len_1025X;
  char Kchar_1024X;
  long index_1023X;
  long arg3_1022X;
  long arg2_1021X;
  long len_1020X;
  long index_1019X;
  long arg2_1018X;
  long obj_1017X;
  char * addr_1016X;
  long len_1015X;
  char init_1014X;
  long len_1013X;
  long arg2_1012X;
  long len_1011X;
  long Kchar_1010X;
  long index_1009X;
  long arg3_1008X;
  long arg2_1007X;
  long len_1006X;
  long index_1005X;
  long arg2_1004X;
  long obj_1003X;
  long x_1002X;
  char * addr_1001X;
  long init_1000X;
  long len_999X;
  long arg2_998X;
  char * addr_997X;
  long v_996X;
  long index_995X;
  long len_994X;
  long type_993X;
  long value_992X;
  long arg3_991X;
  long arg2_990X;
  long v_989X;
  long v_988X;
  long index_987X;
  long len_986X;
  long type_985X;
  long index_984X;
  long arg2_983X;
  char * addr_982X;
  long len_981X;
  long len_980X;
  long type_979X;
  long init_978X;
  long arg2_977X;
  long v_976X;
  long offset_975X;
  long type_974X;
  long value_973X;
  long arg2_972X;
  long offset_971X;
  long type_970X;
  long stob_969X;
  long rest_list_968X;
  long stack_nargs_967X;
  long p_966X;
  long new_965X;
  char * addr_964X;
  long len_963X;
  long type_962X;
  long len_961X;
  long p_960X;
  long new_959X;
  char * addr_958X;
  long len_957X;
  long type_956X;
  long len_955X;
  long type_954X;
  long stob_953X;
  long type_952X;
  long x_951X;
  long x_950X;
  long x_949X;
  long x_948X;
  long x_947X;
  long x_946X;
  long arg2_945X;
  long x_944X;
  long arg2_943X;
  long x_942X;
  long v_941X;
  long v_940X;
  long y_939X;
  long arg2_938X;
  long y_937X;
  long arg2_936X;
  long y_935X;
  long arg2_934X;
  long y_933X;
  long arg2_932X;
  long x_931X;
  long x_930X;
  long x_929X;
  long x_928X;
  long arg2_927X;
  long x_926X;
  long arg2_925X;
  long x_924X;
  long arg2_923X;
  long x_922X;
  long x_921X;
  long x_920X;
  long x_919X;
  long x_918X;
  long x_917X;
  long x_916X;
  long x_915X;
  long x_914X;
  long x_913X;
  long x_912X;
  long n_911X;
  long n_910X;
  long n_909X;
  long n_908X;
  long n_907X;
  long a_906X;
  long val_905X;
  long y_904X;
  long arg2_903X;
  long b_902X;
  long a_901X;
  long val_900X;
  long y_899X;
  long arg2_898X;
  long y_897X;
  long arg2_896X;
  long y_895X;
  long arg2_894X;
  long y_893X;
  long arg2_892X;
  long y_891X;
  long arg2_890X;
  long y_889X;
  long arg2_888X;
  long b_887X;
  long a_886X;
  long y_885X;
  long arg2_884X;
  long x_883X;
  long y_882X;
  long arg2_881X;
  long b_880X;
  long a_879X;
  long y_878X;
  long arg2_877X;
  long x_876X;
  long y_875X;
  long arg2_874X;
  long x_873X;
  long x_872X;
  long n_871X;
  long n_870X;
  long x_869X;
  long x_868X;
  long arg2_867X;
  long rest_list_866X;
  long x_865X;
  long rest_list_864X;
  long stack_nargs_863X;
  long arg1_862X;
  long arg0_861X;
  long arg0_860X;
  long rest_list_859X;
  long stack_nargs_858X;
  long x_857X;
  long index_856X;
  long val_855X;
  long max_854X;
  long p_853X;
  char * code_pointer_852X;
  long return_pointer_offset_851X;
  long nargs_850X;
  long code_849X;
  long template_848X;
  long rest_list_847X;
  long stack_nargs_846X;
  long p_845X;
  long p_844X;
  long cont_843X;
  long v_842X;
  long rest_list_841X;
  long stack_nargs_840X;
  long p_839X;
  long x_838X;
  long args_837X;
  char * code_pointer_836X;
  long return_pointer_offset_835X;
  long length_834X;
  char okayP_833X;
  long stack_nargs_832X;
  long list_args_831X;
  char v_830X;
  char v_829X;
  char * code_pointer_828X;
  long return_pointer_offset_827X;
  long stack_arg_count_826X;
  char * code_pointer_825X;
  long stack_arg_count_824X;
  long v_823X;
  long n_moves_822X;
  long x_821X;
  long n_moves_820X;
  long x_819X;
  long x_818X;
  long x_817X;
  long x_816X;
  long x_815X;
  long value_814X;
  long x_813X;
  long closure_812X;
  char * addr_811X;
  long len_810X;
  long size_809X;
  long free_count_808X;
  char * addr_807X;
  long x_806X;
  long value_805X;
  char * addr_804X;
  long x_803X;
  long x_802X;
  long template_801X;
  long new_env_800X;
  char * addr_799X;
  long len_798X;
  long closures_797X;
  long total_count_796X;
  long template_795X;
  long new_env_794X;
  char * addr_793X;
  long len_792X;
  long closures_791X;
  long total_count_790X;
  char * addr_789X;
  long val_788X;
  long x_787X;
  long location_786X;
  long index_785X;
  long template_784X;
  long location_783X;
  long index_782X;
  long template_781X;
  long x_780X;
  long x_779X;
  long n_778X;
  char * code_pointer_777X;
  long v_776X;
  long code_775X;
  long n_774X;
  char * addr_773X;
  long x_772X;
  long x_771X;
  long pc_770X;
  long code_769X;
  long x_768X;
  char v_767X;
  char v_766X;
  long tag_765X;
  long n_764X;
  long v_763X;
  char v_762X;
  long x_761X;
  long x_760X;
  long x_759X;
  long x_758X;
  long x_757X;
  long x_756X;
  long x_755X;
  long x_754X;
  long spec_753X;
  long needed_stack_space_752X;
  long template_751X;
  long used_750X;
  long code_749X;
  long v_748X;
  long v_747X;
  long code_746X;
  long n_745X;
  char * addr_744X;
  long x_743X;
  long x_742X;
  long x_741X;
  long protocol_skip_740X;
  long final_stack_arg_count_739X;
  char interruptP_738X;
  long obj_737X;
  long template_736X;
  char v_735X;
  char v_734X;
  long skip_733X;
  long skip_732X;
  long x_731X;
  long x_730X;
  long x_729X;
  long x_728X;
  long x_727X;
  long x_726X;
  long x_725X;
  long x_724X;
  long spec_723X;
  long template_722X;
  long used_721X;
  long envUtemp_offset_720X;
  long code_719X;
  long retval_718X;
  long handlers_717X;
  long opcode_716X;
  long nargs_715X;
  long v_714X;
  long v_713X;
  long v_712X;
  long v_711X;
  long index_710X;
  long length_709X;
  long v_708X;
  long v_707X;
  long v_706X;
  long v_705X;
  long v_704X;
  long v_703X;
  long wants_stack_args_702X;
  long v_701X;
  long v_700X;
  long v_699X;
  long v_698X;
  long skip_697X;
  char nativeP_696X;
  long stack_space_695X;
  long protocol_694X;
  long v_693X;
  long x_692X;
  long args_691X;
  long v_690X;
  long list_arg_count_689X;
  long list_args_688X;
  long stack_arg_count_687X;
  long exception_686X;
  long total_arg_count_685X;
  long code_684X;
  long handler_tag_683X;
  long list_arg_count_682X;
  long list_args_681X;
  long stack_arg_count_680X;
  long obj_679X;
 {  if ((3 == (3 & proc_641X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_641X))) + -4))))>>2))))) {
      SvalS = proc_641X;
      obj_679X = SvalS;
      if ((3 == (3 & obj_679X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_679X))) + -4))))>>2))))) {
          arg0K0 = nargs_642X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L50802;}
        else {
          arg0K0 = 3;
          arg0K1 = nargs_642X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L25062;}}
      else {
        arg0K0 = 3;
        arg0K1 = nargs_642X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L25062;}}
    else {
      goto L25222;}}
  else {
    goto L25222;}}
 L50802: {
  stack_arg_count_680X = arg0K0;
  list_args_681X = arg0K1;
  list_arg_count_682X = arg0K2;
  handler_tag_683X = arg0K3;
  code_684X = *((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + (SvalS))))))))));
  total_arg_count_685X = stack_arg_count_680X + list_arg_count_682X;
  arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_684X))) + 1)));
  arg0K1 = 64;
  arg2K2 = 0;
  goto L50828;}
 L25062: {
  exception_686X = arg0K0;
  stack_arg_count_687X = arg0K1;
  list_args_688X = arg0K2;
  list_arg_count_689X = arg0K3;
  merged_arg0K0 = list_args_688X;
  merged_arg0K1 = list_arg_count_689X;
  copy_listSAgc_return_tag = 0;
  goto copy_listSAgc;
 copy_listSAgc_return_0:
  v_690X = copy_listSAgc0_return_value;
  merged_arg0K0 = v_690X;
  merged_arg0K1 = stack_arg_count_687X;
  pop_args_GlistSAgc_return_tag = 0;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_0:
  args_691X = pop_args_GlistSAgc0_return_value;push_exception_setupB(exception_686X, 0);
  x_692X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_692X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_691X);
  arg0K0 = 2;
  goto L25342;}
 L25222: {
  ps_error("s48-restart called with non-procedure", 1, proc_641X);
  return v_693X;}
 L50828: {
  protocol_694X = arg0K0;
  stack_space_695X = arg0K1;
  nativeP_696X = arg2K2;
  if ((69 == protocol_694X)) {
    if ((total_arg_count_685X < 3)) {
      skip_697X = *((unsigned char *) ((((char *) (-3 + code_684X))) + (3 + total_arg_count_685X)));
      if ((0 == skip_697X)) {
        if ((-1 == handler_tag_683X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_680X;
          arg0K2 = list_args_681X;
          arg0K3 = list_arg_count_682X;
          goto L25062;}
        else {
          if ((handler_tag_683X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
            arg0K0 = v_698X;
            goto L54872;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
            arg0K0 = v_699X;
            goto L54872;}}}
      else {
        merged_arg0K0 = list_args_681X;
        merged_arg0K1 = list_arg_count_682X;
        push_list_return_tag = 0;
        goto push_list;
       push_list_return_0:
        arg0K0 = code_684X;
        arg0K1 = 6;
        arg0K2 = skip_697X;
        arg0K3 = (*((long *) (((char *) (-3 + (SvalS))))));
        goto L24188;}}
    else {
      if ((0 == (*((unsigned char *) ((((char *) (-3 + code_684X))) + 2))))) {
        if ((-1 == handler_tag_683X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_680X;
          arg0K2 = list_args_681X;
          arg0K3 = list_arg_count_682X;
          goto L25062;}
        else {
          if ((handler_tag_683X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
            arg0K0 = v_700X;
            goto L54872;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
            arg0K0 = v_701X;
            goto L54872;}}}
      else {
        arg0K0 = 6;
        goto L50871;}}}
  else {
    if ((63 < protocol_694X)) {
      if ((65 == protocol_694X)) {
        wants_stack_args_702X = ((((*((unsigned char *) ((((char *) (-3 + code_684X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_684X))) + 3)));
        if ((total_arg_count_685X < wants_stack_args_702X)) {
          if ((-1 == handler_tag_683X)) {
            arg0K0 = 4;
            arg0K1 = stack_arg_count_680X;
            arg0K2 = list_args_681X;
            arg0K3 = list_arg_count_682X;
            goto L25062;}
          else {
            if ((handler_tag_683X < 0)) {
              ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
              arg0K0 = v_703X;
              goto L54872;}
            else {
              ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
              arg0K0 = v_704X;
              goto L54872;}}}
        else {
          merged_arg0K0 = wants_stack_args_702X;
          merged_arg0K1 = stack_arg_count_680X;
          merged_arg0K2 = list_args_681X;
          merged_arg0K3 = list_arg_count_682X;
          rest_list_setupAgc_return_tag = 0;
          goto rest_list_setupAgc;
         rest_list_setupAgc_return_0:
          arg0K0 = 4;
          goto L50832;}}
      else {
        if ((68 == protocol_694X)) {
          if ((total_arg_count_685X < (*((unsigned char *) ((((char *) (-3 + code_684X))) + 2))))) {
            if ((-1 == handler_tag_683X)) {
              arg0K0 = 4;
              arg0K1 = stack_arg_count_680X;
              arg0K2 = list_args_681X;
              arg0K3 = list_arg_count_682X;
              goto L25062;}
            else {
              if ((handler_tag_683X < 0)) {
                ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
                arg0K0 = v_705X;
                goto L54872;}
              else {
                ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
                arg0K0 = v_706X;
                goto L54872;}}}
          else {
            arg0K0 = 3;
            goto L50871;}}
        else {
          if ((127 < protocol_694X)) {
            arg0K0 = (127 & protocol_694X);
            arg0K1 = stack_space_695X;
            arg2K2 = 1;
            goto L50828;}
          else {
            if ((64 == protocol_694X)) {
              if (((((((*((unsigned char *) ((((char *) (-3 + code_684X))) + 2))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_684X))) + 3)))) == total_arg_count_685X)) {
                if ((0 == list_arg_count_682X)) {
                  arg0K0 = 4;
                  goto L50832;}
                else {
                  merged_arg0K0 = list_args_681X;
                  merged_arg0K1 = list_arg_count_682X;
                  push_list_return_tag = 1;
                  goto push_list;
                 push_list_return_1:
                  arg0K0 = 4;
                  goto L50832;}}
              else {
                if ((-1 == handler_tag_683X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_680X;
                  arg0K2 = list_args_681X;
                  arg0K3 = list_arg_count_682X;
                  goto L25062;}
                else {
                  if ((handler_tag_683X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
                    arg0K0 = v_707X;
                    goto L54872;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
                    arg0K0 = v_708X;
                    goto L54872;}}}}
            else {
              if ((67 == protocol_694X)) {
                length_709X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + code_684X))) + -4))))>>8);
                index_710X = -2 + length_709X;
                arg0K0 = (*((unsigned char *) ((((char *) (-3 + code_684X))) + (-3 + length_709X))));
                arg0K1 = (((((*((unsigned char *) ((((char *) (-3 + code_684X))) + index_710X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_684X))) + (1 + index_710X)))));
                arg2K2 = nativeP_696X;
                goto L50828;}
              else {
                ps_error("unknown protocol", 1, protocol_694X);
                if ((-1 == handler_tag_683X)) {
                  arg0K0 = 4;
                  arg0K1 = stack_arg_count_680X;
                  arg0K2 = list_args_681X;
                  arg0K3 = list_arg_count_682X;
                  goto L25062;}
                else {
                  if ((handler_tag_683X < 0)) {
                    ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
                    arg0K0 = v_711X;
                    goto L54872;}
                  else {
                    ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
                    arg0K0 = v_712X;
                    goto L54872;}}}}}}}}
    else {
      if ((protocol_694X == total_arg_count_685X)) {
        if ((0 == list_arg_count_682X)) {
          arg0K0 = 2;
          goto L50832;}
        else {
          merged_arg0K0 = list_args_681X;
          merged_arg0K1 = list_arg_count_682X;
          push_list_return_tag = 2;
          goto push_list;
         push_list_return_2:
          arg0K0 = 2;
          goto L50832;}}
      else {
        if ((-1 == handler_tag_683X)) {
          arg0K0 = 4;
          arg0K1 = stack_arg_count_680X;
          arg0K2 = list_args_681X;
          arg0K3 = list_arg_count_682X;
          goto L25062;}
        else {
          if ((handler_tag_683X < 0)) {
            ps_error("wrong number of arguments to interrupt handler", 1, (-2 - handler_tag_683X));
            arg0K0 = v_713X;
            goto L54872;}
          else {
            ps_error("wrong number of arguments to exception handler", 1, handler_tag_683X);
            arg0K0 = v_714X;
            goto L54872;}}}}}}
 L25342: {
  nargs_715X = arg0K0;
  opcode_716X = (((*((long *) ((SstackS) + (4 + (((nargs_715X)<<2)))))))>>2);
  handlers_717X = SHARED_REF((Sexception_handlersS));
  if ((3 == (3 & handlers_717X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_717X))) + -4))))>>2))))) {
      goto L25407;}
    else {
      goto L25490;}}
  else {
    goto L25490;}}
 L54872: {
  retval_718X = arg0K0;
  SstackS = (ScontS);
  return retval_718X;}
 L24188: {
  code_719X = arg0K0;
  envUtemp_offset_720X = arg0K1;
  used_721X = arg0K2;
  template_722X = arg0K3;
  spec_723X = *((unsigned char *) ((((char *) (-3 + code_719X))) + envUtemp_offset_720X));
  if ((3 == spec_723X)) {
    x_724X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_724X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_722X);
    goto L24192;}
  else {
    if ((1 == spec_723X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_722X);
      goto L24192;}
    else {
      if ((2 == spec_723X)) {
        x_725X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_725X);
        goto L24192;}
      else {
        if ((4 == spec_723X)) {
          x_726X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_726X);
          goto L24192;}
        else {
          if ((6 == spec_723X)) {
            x_727X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_727X);
            x_728X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_728X);
            goto L24192;}
          else {
            if ((5 == spec_723X)) {
              x_729X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_729X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_722X);
              goto L24192;}
            else {
              if ((7 == spec_723X)) {
                x_730X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_730X);
                x_731X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_731X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_722X);
                goto L24192;}
              else {
                goto L24192;}}}}}}}}
 L50871: {
  skip_732X = arg0K0;
  if ((total_arg_count_685X < 3)) {
    arg0K0 = total_arg_count_685X;
    goto L50879;}
  else {
    if ((2 < stack_arg_count_680X)) {
      arg0K0 = stack_arg_count_680X;
      goto L50879;}
    else {
      arg0K0 = 2;
      goto L50879;}}}
 L50832: {
  skip_733X = arg0K0;
  if (nativeP_696X) {
    merged_arg0K0 = stack_space_695X;
    ensure_stack_spaceB_return_tag = 0;
    goto ensure_stack_spaceB;
   ensure_stack_spaceB_return_0:
    v_734X = ensure_stack_spaceB0_return_value;
    if (v_734X) {
      pending_interruptP_return_tag = 0;
      goto pending_interruptP;
     pending_interruptP_return_0:
      v_735X = pending_interruptP0_return_value;
      if (v_735X) {
        arg0K0 = skip_733X;
        goto L24660;}
      else {
        goto L50999;}}
    else {
      goto L50999;}}
  else {
    template_736X = *((long *) (((char *) (-3 + (SvalS)))));
    arg0K0 = (*((long *) (((char *) (-3 + template_736X)))));
    arg0K1 = skip_733X;
    arg0K2 = template_736X;
    arg0K3 = stack_space_695X;
    goto L27138;}}
 L25407: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_717X))) + (((opcode_716X)<<2)))));
  obj_737X = SvalS;
  if ((3 == (3 & obj_737X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_737X))) + -4))))>>2))))) {
      goto L25424;}
    else {
      goto L25504;}}
  else {
    goto L25504;}}
 L25490: {
  merged_arg3K0 = "exception-handlers is not a vector";
  loseD0_return_tag = 0;
  goto loseD0;
 loseD0_return_0:
  goto L25407;}
 L24192: {
  Slast_code_calledS = code_719X;
  Scode_pointerS = ((((char *) (-3 + code_719X))) + used_721X);
  if (((SstackS) < (s48_Sstack_limitS))) {
    interruptP_738X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if (((SstackS) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        if (interruptP_738X) {
          goto L24199;}
        else {
          goto L24206;}}
      else {
        if (interruptP_738X) {
          goto L24199;}
        else {
          goto L24206;}}}
    else {
      if (interruptP_738X) {
        goto L24199;}
      else {
        goto L24206;}}}
  else {
    goto L24206;}}
 L50879: {
  final_stack_arg_count_739X = arg0K0;
  if ((stack_arg_count_680X < final_stack_arg_count_739X)) {
    arg0K0 = final_stack_arg_count_739X;
    goto L50883;}
  else {
    arg0K0 = stack_arg_count_680X;
    goto L50883;}}
 L24660: {
  protocol_skip_740X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((protocol_skip_740X)<<2)));
  x_741X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_741X);
  x_742X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_742X);
  x_743X = Scurrent_threadS;
  addr_744X = (((char *) (-3 + x_743X))) + 12;S48_WRITE_BARRIER(x_743X, addr_744X, 1);
  *((long *) addr_744X) = (long) (1);
  n_745X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_745X)<<2)));
  code_746X = Sinterrupted_native_call_return_codeS;
  v_747X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_747X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_746X))) + 13))));
  ScontS = (SstackS);
  goto L24394;}
 L50999: {
  v_748X = s48_call_native_procedure((SvalS), skip_733X);
  arg0K0 = v_748X;
  goto L50012;}
 L27138: {
  code_749X = arg0K0;
  used_750X = arg0K1;
  template_751X = arg0K2;
  needed_stack_space_752X = arg0K3;
  spec_753X = *((unsigned char *) ((((char *) (-3 + code_749X))) + used_750X));
  if ((3 == spec_753X)) {
    x_754X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_754X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (template_751X);
    goto L27142;}
  else {
    if ((1 == spec_753X)) {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (template_751X);
      goto L27142;}
    else {
      if ((2 == spec_753X)) {
        x_755X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_755X);
        goto L27142;}
      else {
        if ((4 == spec_753X)) {
          x_756X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_756X);
          goto L27142;}
        else {
          if ((6 == spec_753X)) {
            x_757X = SvalS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_757X);
            x_758X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (x_758X);
            goto L27142;}
          else {
            if ((5 == spec_753X)) {
              x_759X = SvalS;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_759X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (template_751X);
              goto L27142;}
            else {
              if ((7 == spec_753X)) {
                x_760X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_760X);
                x_761X = *((long *) ((((char *) (-3 + (SvalS)))) + 4));
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_761X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (template_751X);
                goto L27142;}
              else {
                goto L27142;}}}}}}}}
 L25424: {
  arg0K0 = (2 + nargs_715X);
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = opcode_716X;
  goto L50802;}
 L25504: {
  merged_arg3K0 = "exception handler is not a closure";
  loseD0_return_tag = 1;
  goto loseD0;
 loseD0_return_1:
  goto L25424;}
 L24199: {
  pending_interruptP_return_tag = 1;
  goto pending_interruptP;
 pending_interruptP_return_1:
  v_762X = pending_interruptP0_return_value;
  if (v_762X) {
    goto L24571;}
  else {
    goto L24206;}}
 L24206: {
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L50883: {
  v_763X = arg0K0;
  merged_arg0K0 = v_763X;
  merged_arg0K1 = stack_arg_count_680X;
  merged_arg0K2 = list_args_681X;
  merged_arg0K3 = list_arg_count_682X;
  rest_list_setupAgc_return_tag = 1;
  goto rest_list_setupAgc;
 rest_list_setupAgc_return_1:
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((final_stack_arg_count_739X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((total_arg_count_685X)<<2)));
  arg0K0 = skip_732X;
  goto L50832;}
 L24394: {
  n_764X = (Spending_interruptsS) & (Senabled_interruptsS);
  arg0K0 = 0;
  arg0K1 = 1;
  goto L24447;}
 L50012: {
  tag_765X = arg0K0;
  arg0K0 = tag_765X;
  goto L50016;}
 L27142: {
  Slast_code_calledS = code_749X;
  Scode_pointerS = ((((char *) (-3 + code_749X))) + (1 + used_750X));
  merged_arg0K0 = needed_stack_space_752X;
  ensure_stack_spaceB_return_tag = 1;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_1:
  v_766X = ensure_stack_spaceB0_return_value;
  if (v_766X) {
    pending_interruptP_return_tag = 2;
    goto pending_interruptP;
   pending_interruptP_return_2:
    v_767X = pending_interruptP0_return_value;
    if (v_767X) {
      goto L24571;}
    else {
      goto L27156;}}
  else {
    goto L27156;}}
 L24571: {
  x_768X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_768X);
  code_769X = current_code_vector();
  pc_770X = (Scode_pointerS) - (((char *) (-3 + code_769X)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (code_769X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((pc_770X)<<2)));
  x_771X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_771X);
  x_772X = Scurrent_threadS;
  addr_773X = (((char *) (-3 + x_772X))) + 12;S48_WRITE_BARRIER(x_772X, addr_773X, 1);
  *((long *) addr_773X) = (long) (1);
  n_774X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_774X)<<2)));
  code_775X = Sinterrupted_byte_opcode_return_codeS;
  v_776X = ((((ScontS) - (SstackS)))>>2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((4 + (((v_776X)<<2))));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_775X))) + 13))));
  ScontS = (SstackS);
  goto L24394;}
 L26704: {
  code_pointer_777X = arg1K0;
  switch ((*((unsigned char *) code_pointer_777X))) {
    case 0 : 
    case 31 : 
    case 42 : {push_exception_setupB(14, 1);
      n_778X = *((unsigned char *) (Scode_pointerS));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_778X)<<2)));
      arg0K0 = 1;
      goto L25342;}
      break;
    case 1 : {
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 2 : {
      x_779X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_779X);
      SvalS = (-512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 3 : {
      x_780X = -512 + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_780X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 4 : {
      template_781X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_782X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_783X = *((long *) ((((char *) (-3 + template_781X))) + (((index_782X)<<2))));
      SvalS = (*((long *) ((((char *) (-3 + location_783X))) + 4)));
      if ((17 == (255 & (SvalS)))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_783X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_781X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_782X)<<2)));
        arg0K0 = 3;
        goto L25342;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg1K0 = (Scode_pointerS);
        goto L26704;}}
      break;
    case 5 : {
      template_784X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      index_785X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      location_786X = *((long *) ((((char *) (-3 + template_784X))) + (((index_785X)<<2))));
      if ((273 == (*((long *) ((((char *) (-3 + location_786X))) + 4))))) {push_exception_setupB(1, 5);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (location_786X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (template_784X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((index_785X)<<2)));
        x_787X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_787X);
        arg0K0 = 4;
        goto L25342;}
      else {
        val_788X = SvalS;
        addr_789X = (((char *) (-3 + location_786X))) + 4;S48_WRITE_BARRIER(location_786X, addr_789X, val_788X);
        *((long *) addr_789X) = (long) (val_788X);
        SvalS = 13;
        Scode_pointerS = ((Scode_pointerS) + 5);
        arg1K0 = (Scode_pointerS);
        goto L26704;}}
      break;
    case 6 : {
      total_count_790X = *((unsigned char *) ((Scode_pointerS) + 1));
      closures_791X = *((unsigned char *) ((Scode_pointerS) + 2));s48_make_availableAgc((((((1 + total_count_790X) + (3 * closures_791X)))<<2)));
      len_792X = ((total_count_790X)<<2);
      addr_793X = s48_allocate_small((4 + len_792X));
      *((long *) addr_793X) = (long) ((10 + (((len_792X)<<8))));
      new_env_794X = 3 + (((long) (addr_793X + 4)));
      if ((0 == closures_791X)) {
        arg0K0 = new_env_794X;
        arg0K1 = 0;
        arg0K2 = 2;
        arg0K3 = total_count_790X;
        goto L9001;}
      else {
        template_795X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<2))));
        arg0K0 = closures_791X;
        arg0K1 = 0;
        arg0K2 = 3;
        goto L19260;}}
      break;
    case 7 : {
      total_count_796X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      closures_797X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));s48_make_availableAgc((((((1 + total_count_796X) + (3 * closures_797X)))<<2)));
      len_798X = ((total_count_796X)<<2);
      addr_799X = s48_allocate_small((4 + len_798X));
      *((long *) addr_799X) = (long) ((10 + (((len_798X)<<8))));
      new_env_800X = 3 + (((long) (addr_799X + 4)));
      if ((0 == closures_797X)) {
        arg0K0 = new_env_800X;
        arg0K1 = 0;
        arg0K2 = 4;
        arg0K3 = total_count_796X;
        goto L11524;}
      else {
        template_801X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
        arg0K0 = closures_797X;
        arg0K1 = 0;
        arg0K2 = 6;
        goto L19321;}}
      break;
    case 8 : {
      x_802X = SvalS;
      x_803X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      addr_804X = (((char *) (-3 + x_803X))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2));S48_WRITE_BARRIER(x_803X, addr_804X, x_802X);
      *((long *) addr_804X) = (long) (x_802X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 9 : {
      value_805X = SvalS;
      x_806X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2))));
      addr_807X = (((char *) (-3 + x_806X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 2))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 3)))))<<2));S48_WRITE_BARRIER(x_806X, addr_807X, value_805X);
      *((long *) addr_807X) = (long) (value_805X);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 10 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 11 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 12 : {
      free_count_808X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      size_809X = 1 + free_count_808X;s48_make_availableAgc((4 + (((size_809X)<<2))));
      len_810X = ((size_809X)<<2);
      addr_811X = s48_allocate_small((4 + len_810X));
      *((long *) addr_811X) = (long) ((14 + (((len_810X)<<8))));
      closure_812X = 3 + (((long) (addr_811X + 4)));
      *((long *) (((char *) (-3 + closure_812X)))) = (long) ((SvalS));
      arg0K0 = free_count_808X;
      goto L29337;}
      break;
    case 13 : {
      x_813X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_813X);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 14 : {
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (1);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 15 : {
      value_814X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = value_814X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 16 : {
      SstackS = ((SstackS) + (0 - ((((0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))))<<2))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 17 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      goto L51567;}
      break;
    case 18 : {
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 19 : {
      x_815X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_815X);
      SvalS = (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 20 : {
      x_816X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_816X);
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 21 : {
      SvalS = (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 22 : {
      *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 2);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 23 : {
      *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))) = (long) ((SvalS));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 24 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 25 : {
      x_817X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_817X);
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 26 : {
      x_818X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<2)))))))) + ((((*((unsigned char *) ((Scode_pointerS) + 2))))<<2))));
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_818X);
      Scode_pointerS = ((Scode_pointerS) + 3);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 27 : {
      SvalS = (*((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))));
      Scode_pointerS = ((Scode_pointerS) + 5);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 28 : {
      x_819X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_819X);
      n_moves_820X = *((unsigned char *) ((Scode_pointerS) + 1));
      arg0K0 = 0;
      goto L28671;}
      break;
    case 29 : {
      x_821X = SvalS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_821X);
      n_moves_822X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      arg0K0 = 0;
      goto L28588;}
      break;
    case 30 : {s48_make_availableAgc(((((-4 & ((Sstack_endS) - (SstackS))))<<2)));
      if ((1 == (((long) (ScontS))))) {
        arg0K0 = 1;
        goto L51636;}
      else {
        v_823X = really_preserve_continuation(0);
        arg0K0 = v_823X;
        goto L51636;}}
      break;
    case 32 : {
      stack_arg_count_824X = *((unsigned char *) ((Scode_pointerS) + 3));
      code_pointer_825X = (Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      ScontS = ((SstackS) + (((stack_arg_count_824X)<<2)));
      *((long *) (ScontS)) = (long) ((((long) code_pointer_825X)));
      arg0K0 = stack_arg_count_824X;
      goto L50729;}
      break;
    case 33 : {
      merged_arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      move_args_above_contB_return_tag = 0;
      goto move_args_above_contB;
     move_args_above_contB_return_0:
      arg0K0 = (*((unsigned char *) ((Scode_pointerS) + 1)));
      goto L50729;}
      break;
    case 34 : {
      stack_arg_count_826X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      return_pointer_offset_827X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_827X)) {
        merged_arg0K0 = stack_arg_count_826X;
        move_args_above_contB_return_tag = 1;
        goto move_args_above_contB;
       move_args_above_contB_return_1:
        goto L25175;}
      else {
        code_pointer_828X = (Scode_pointerS) + return_pointer_offset_827X;
        ScontS = ((SstackS) + (((stack_arg_count_826X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_828X)));
        goto L25175;}}
      break;
    case 35 : {
      v_829X = (s48_Sstack_limitS) == (((char *) -1));
      if (v_829X) {
        pending_interruptP_return_tag = 3;
        goto pending_interruptP;
       pending_interruptP_return_3:
        v_830X = pending_interruptP0_return_value;
        if (v_830X) {
          goto L24571;}
        else {
          goto L51662;}}
      else {
        goto L51662;}}
      break;
    case 36 : {
      list_args_831X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_832X = ((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)));
      merged_arg0K0 = list_args_831X;
      okay_argument_list_return_tag = 0;
      goto okay_argument_list;
     okay_argument_list_return_0:
      okayP_833X = okay_argument_list0_return_value;
      length_834X = okay_argument_list1_return_value;
      if (okayP_833X) {
        return_pointer_offset_835X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
        if ((0 == return_pointer_offset_835X)) {
          merged_arg0K0 = stack_nargs_832X;
          move_args_above_contB_return_tag = 2;
          goto move_args_above_contB;
         move_args_above_contB_return_2:
          arg0K0 = stack_nargs_832X;
          arg0K1 = list_args_831X;
          arg0K2 = length_834X;
          goto L49753;}
        else {
          code_pointer_836X = (Scode_pointerS) + return_pointer_offset_835X;
          ScontS = ((SstackS) + (((stack_nargs_832X)<<2)));
          *((long *) (ScontS)) = (long) ((((long) code_pointer_836X)));
          arg0K0 = stack_nargs_832X;
          arg0K1 = list_args_831X;
          arg0K2 = length_834X;
          goto L49753;}}
      else {
        merged_arg0K0 = list_args_831X;
        merged_arg0K1 = stack_nargs_832X;
        pop_args_GlistSAgc_return_tag = 1;
        goto pop_args_GlistSAgc;
       pop_args_GlistSAgc_return_1:
        args_837X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
        x_838X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_838X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (args_837X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 37 : {
      SstackS = ((SstackS) + 4);
      p_839X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_840X = ((p_839X)>>2);
      SvalS = (*((long *) ((SstackS) + (((stack_nargs_840X)<<2)))));
      merged_arg0K0 = stack_nargs_840X;
      move_args_above_contB_return_tag = 3;
      goto move_args_above_contB;
     move_args_above_contB_return_3:
      rest_list_841X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((25 == rest_list_841X)) {
        v_842X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_842X;
        arg0K1 = (-2 + stack_nargs_840X);
        goto L17515;}
      else {
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_841X))) + 4))))) {
          arg0K0 = (*((long *) (((char *) (-3 + rest_list_841X)))));
          arg0K1 = (-1 + stack_nargs_840X);
          goto L17515;}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + rest_list_841X))) + 4)))))) + 4)));
          arg0K1 = rest_list_841X;
          goto L17560;}}}
      break;
    case 38 : {
      cont_843X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & cont_843X))) {
        if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_843X))) + -4))))>>2))))) {
          merged_arg0K0 = cont_843X;
          merged_arg0K1 = 0;
          copy_continuation_from_heapB_return_tag = 0;
          goto copy_continuation_from_heapB;
         copy_continuation_from_heapB_return_0:
          goto L25133;}
        else {
          goto L25142;}}
      else {
        goto L25142;}}
      break;
    case 39 : {
      goto L50340;}
      break;
    case 40 : {
      arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))));
      arg0K1 = 25;
      arg0K2 = 0;
      goto L24800;}
      break;
    case 41 : {
      p_844X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      p_845X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_846X = ((p_845X)>>2);
      rest_list_847X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = stack_nargs_846X;
      arg0K1 = rest_list_847X;
      arg0K2 = ((((p_844X)>>2)) - stack_nargs_846X);
      goto L24800;}
      break;
    case 43 : {
      template_848X = *((long *) ((((char *) (-3 + (*((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + 3))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 4)))))<<2)))))))) + ((((((((*((unsigned char *) ((Scode_pointerS) + 5))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 6)))))<<2))));
      code_849X = *((long *) (((char *) (-3 + template_848X))));
      nargs_850X = *((unsigned char *) ((Scode_pointerS) + 7));
      return_pointer_offset_851X = ((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)));
      if ((0 == return_pointer_offset_851X)) {
        merged_arg0K0 = nargs_850X;
        move_args_above_contB_return_tag = 4;
        goto move_args_above_contB;
       move_args_above_contB_return_4:
        goto L28322;}
      else {
        code_pointer_852X = (Scode_pointerS) + return_pointer_offset_851X;
        ScontS = ((SstackS) + (((nargs_850X)<<2)));
        *((long *) (ScontS)) = (long) ((((long) code_pointer_852X)));
        goto L28322;}}
      break;
    case 44 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 3);
        arg1K0 = (Scode_pointerS);
        goto L26704;}}
      break;
    case 45 : {
      Scode_pointerS = ((Scode_pointerS) + (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2)))));
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 46 : {
      Scode_pointerS = ((Scode_pointerS) + (0 - (((((*((unsigned char *) ((Scode_pointerS) + 1))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + 2))))));
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 47 : {
      if ((0 == (3 & (SvalS)))) {
        p_853X = SvalS;
        max_854X = *((unsigned char *) ((Scode_pointerS) + 1));
        val_855X = ((p_853X)>>2);
        if ((val_855X < 0)) {
          goto L27013;}
        else {
          if ((val_855X < max_854X)) {
            index_856X = 1 + (((val_855X)<<1));
            arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + index_856X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_856X)))));
            goto L27015;}
          else {
            goto L27013;}}}
      else {push_exception_setupB(5, 0);
        x_857X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_857X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 48 : {
      stack_nargs_858X = (((*((long *) (SstackS))))>>2);
      if ((0 == stack_nargs_858X)) {
        rest_list_859X = *((long *) ((SstackS) + 4));
        arg0_860X = *((long *) ((SstackS) + 8));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_860X);
        SvalS = (*((long *) (((char *) (-3 + rest_list_859X)))));
        goto L27602;}
      else {
        arg0_861X = *((long *) ((SstackS) + (4 + (((stack_nargs_858X)<<2)))));
        arg1_862X = *((long *) ((SstackS) + (((stack_nargs_858X)<<2))));
        *((long *) ((SstackS) + (4 + (((stack_nargs_858X)<<2))))) = (long) (1);
        *((long *) (SstackS)) = (long) ((-4 + (((stack_nargs_858X)<<2))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg0_861X);
        SvalS = arg1_862X;
        goto L27602;}}
      break;
    case 49 : {
      stack_nargs_863X = (((*((long *) (SstackS))))>>2);
      if ((stack_nargs_863X == 0)) {
        rest_list_864X = *((long *) ((SstackS) + 4));
        if ((25 == (*((long *) ((((char *) (-3 + rest_list_864X))) + 4))))) {
          arg0K0 = 1;
          goto L26911;}
        else {
          *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_864X))) + 4))));
          *((long *) ((SstackS) + 8)) = (long) ((SvalS));
          arg0K0 = -2;
          goto L26911;}}
      else {
        if ((stack_nargs_863X == 1)) {
          if ((25 == (*((long *) ((SstackS) + 4))))) {
            arg0K0 = 1;
            goto L26911;}
          else {
            *((long *) (SstackS)) = (long) (0);
            *((long *) ((SstackS) + 8)) = (long) ((SvalS));
            arg0K0 = -2;
            goto L26911;}}
        else {
          *((long *) ((SstackS) + (4 + (((stack_nargs_863X)<<2))))) = (long) ((SvalS));
          arg0K0 = -2;
          goto L26911;}}}
      break;
    case 50 : {
      if ((1 == (SvalS))) {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        x_865X = (((*((long *) (SstackS))))>>2);
        if ((x_865X == 0)) {
          rest_list_866X = *((long *) ((SstackS) + 4));
          if ((25 == (*((long *) ((((char *) (-3 + rest_list_866X))) + 4))))) {
            arg0K0 = 1;
            goto L27493;}
          else {
            *((long *) ((SstackS) + 4)) = (long) ((*((long *) ((((char *) (-3 + rest_list_866X))) + 4))));
            *((long *) ((SstackS) + 8)) = (long) ((*((long *) (((char *) (-3 + rest_list_866X))))));
            arg0K0 = -2;
            goto L27493;}}
        else {
          if ((x_865X == 1)) {
            if ((25 == (*((long *) ((SstackS) + 4))))) {
              arg0K0 = 1;
              goto L27493;}
            else {
              *((long *) (SstackS)) = (long) (0);
              arg0K0 = -2;
              goto L27493;}}
          else {
            arg0K0 = -2;
            goto L27493;}}}}
      break;
    case 51 : {
      arg2_867X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_868X = SvalS;
      if ((arg2_867X == x_868X)) {
        arg0K0 = 5;
        goto L51707;}
      else {
        arg0K0 = 1;
        goto L51707;}}
      break;
    case 52 : {
      x_869X = SvalS;
      if ((0 == (3 & x_869X))) {
        arg0K0 = 5;
        goto L51719;}
      else {
        if ((3 == (3 & x_869X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_869X))) + -4))))>>2))))) {
            arg0K0 = 5;
            goto L51719;}
          else {
            goto L15427;}}
        else {
          goto L15427;}}}
      break;
    case 53 : {
      n_870X = SvalS;
      if ((0 == (3 & n_870X))) {
        goto L41764;}
      else {
        if ((3 == (3 & n_870X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_870X))) + -4))))>>2))))) {
            goto L41764;}
          else {
            goto L41765;}}
        else {
          goto L41765;}}}
      break;
    case 54 : {
      arg0K0 = (SvalS);
      goto L41898;}
      break;
    case 55 : {
      arg0K0 = (SvalS);
      goto L41898;}
      break;
    case 56 : {
      arg0K0 = (SvalS);
      goto L41898;}
      break;
    case 57 : {
      n_871X = SvalS;
      if ((0 == (3 & n_871X))) {
        goto L34926;}
      else {
        if ((3 == (3 & n_871X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_871X))) + -4))))>>2))))) {
            goto L34926;}
          else {
            goto L34927;}}
        else {
          goto L34927;}}}
      break;
    case 58 : {
      x_872X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_872X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 59 : {
      x_873X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_873X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 60 : {
      arg2_874X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_875X = SvalS;
      if ((0 == (3 & (arg2_874X | y_875X)))) {s48_make_availableAgc(16);
        x_876X = (((arg2_874X)>>2)) + (((y_875X)>>2));
        if ((536870911 < x_876X)) {
          goto L35052;}
        else {
          if ((x_876X < -536870912)) {
            goto L35052;}
          else {
            arg0K0 = (((x_876X)<<2));
            goto L34998;}}}
      else {
        if ((0 == (3 & arg2_874X))) {
          goto L35004;}
        else {
          if ((3 == (3 & arg2_874X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_874X))) + -4))))>>2))))) {
              goto L35004;}
            else {
              goto L35013;}}
          else {
            goto L35013;}}}}
      break;
    case 61 : {
      arg2_877X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_878X = SvalS;
      if ((0 == (3 & (arg2_877X | y_878X)))) {
        a_879X = ((arg2_877X)>>2);
        b_880X = ((y_878X)>>2);
        if ((a_879X < 0)) {
          arg0K0 = (0 - a_879X);
          goto L9167;}
        else {
          arg0K0 = a_879X;
          goto L9167;}}
      else {
        if ((0 == (3 & arg2_877X))) {
          goto L43661;}
        else {
          if ((3 == (3 & arg2_877X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_877X))) + -4))))>>2))))) {
              goto L43661;}
            else {
              goto L43670;}}
          else {
            goto L43670;}}}}
      break;
    case 62 : {
      arg2_881X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_882X = SvalS;
      if ((0 == (3 & (arg2_881X | y_882X)))) {s48_make_availableAgc(16);
        x_883X = (((arg2_881X)>>2)) - (((y_882X)>>2));
        if ((536870911 < x_883X)) {
          goto L35341;}
        else {
          if ((x_883X < -536870912)) {
            goto L35341;}
          else {
            arg0K0 = (((x_883X)<<2));
            goto L35287;}}}
      else {
        if ((0 == (3 & arg2_881X))) {
          goto L35293;}
        else {
          if ((3 == (3 & arg2_881X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_881X))) + -4))))>>2))))) {
              goto L35293;}
            else {
              goto L35302;}}
          else {
            goto L35302;}}}}
      break;
    case 63 : {
      arg2_884X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_885X = SvalS;
      if ((0 == y_885X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_884X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_885X);
        arg0K0 = 2;
        goto L25342;}
      else {
        if ((0 == (3 & (arg2_884X | y_885X)))) {
          if ((0 == y_885X)) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_884X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_885X);
            arg0K0 = 2;
            goto L25342;}
          else {
            a_886X = ((arg2_884X)>>2);
            b_887X = ((y_885X)>>2);
            if ((a_886X < 0)) {
              arg0K0 = (0 - a_886X);
              goto L9425;}
            else {
              arg0K0 = a_886X;
              goto L9425;}}}
        else {
          if ((0 == (3 & arg2_884X))) {
            goto L43914;}
          else {
            if ((3 == (3 & arg2_884X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_884X))) + -4))))>>2))))) {
                goto L43914;}
              else {
                goto L43951;}}
            else {
              goto L43951;}}}}}
      break;
    case 64 : {
      arg2_888X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_889X = SvalS;
      if ((0 == (3 & (arg2_888X | y_889X)))) {
        if ((arg2_888X == y_889X)) {
          arg0K0 = 5;
          goto L35572;}
        else {
          arg0K0 = 1;
          goto L35572;}}
      else {
        if ((0 == (3 & arg2_888X))) {
          goto L35578;}
        else {
          if ((3 == (3 & arg2_888X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_888X))) + -4))))>>2))))) {
              goto L35578;}
            else {
              goto L35589;}}
          else {
            goto L35589;}}}}
      break;
    case 65 : {
      arg2_890X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_891X = SvalS;
      if ((0 == (3 & (arg2_890X | y_891X)))) {
        if ((arg2_890X < y_891X)) {
          arg0K0 = 5;
          goto L35832;}
        else {
          arg0K0 = 1;
          goto L35832;}}
      else {
        if ((0 == (3 & arg2_890X))) {
          goto L35838;}
        else {
          if ((3 == (3 & arg2_890X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_890X))) + -4))))>>2))))) {
              goto L35838;}
            else {
              goto L35849;}}
          else {
            goto L35849;}}}}
      break;
    case 66 : {
      arg2_892X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_893X = SvalS;
      if ((0 == (3 & (arg2_892X | y_893X)))) {
        if ((y_893X < arg2_892X)) {
          arg0K0 = 5;
          goto L36155;}
        else {
          arg0K0 = 1;
          goto L36155;}}
      else {
        if ((0 == (3 & arg2_892X))) {
          goto L36161;}
        else {
          if ((3 == (3 & arg2_892X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_892X))) + -4))))>>2))))) {
              goto L36161;}
            else {
              goto L36172;}}
          else {
            goto L36172;}}}}
      break;
    case 67 : {
      arg2_894X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_895X = SvalS;
      if ((0 == (3 & (arg2_894X | y_895X)))) {
        if ((y_895X < arg2_894X)) {
          arg0K0 = 1;
          goto L36478;}
        else {
          arg0K0 = 5;
          goto L36478;}}
      else {
        if ((0 == (3 & arg2_894X))) {
          goto L36484;}
        else {
          if ((3 == (3 & arg2_894X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_894X))) + -4))))>>2))))) {
              goto L36484;}
            else {
              goto L36495;}}
          else {
            goto L36495;}}}}
      break;
    case 68 : {
      arg2_896X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_897X = SvalS;
      if ((0 == (3 & (arg2_896X | y_897X)))) {
        if ((arg2_896X < y_897X)) {
          arg0K0 = 1;
          goto L36772;}
        else {
          arg0K0 = 5;
          goto L36772;}}
      else {
        if ((0 == (3 & arg2_896X))) {
          goto L36778;}
        else {
          if ((3 == (3 & arg2_896X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_896X))) + -4))))>>2))))) {
              goto L36778;}
            else {
              goto L36789;}}
          else {
            goto L36789;}}}}
      break;
    case 69 : {
      arg2_898X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_899X = SvalS;
      if ((0 == y_899X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_898X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_899X);
        arg0K0 = 2;
        goto L25342;}
      else {
        if ((0 == (3 & (arg2_898X | y_899X)))) {
          if ((0 == y_899X)) {
            val_900X = Hinteger_op7480(arg2_898X, y_899X);
            SvalS = val_900X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}
          else {
            a_901X = ((arg2_898X)>>2);
            b_902X = ((y_899X)>>2);
            if ((a_901X < 0)) {
              arg0K0 = (0 - a_901X);
              goto L10116;}
            else {
              arg0K0 = a_901X;
              goto L10116;}}}
        else {
          if ((0 == (3 & arg2_898X))) {
            goto L37078;}
          else {
            if ((3 == (3 & arg2_898X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_898X))) + -4))))>>2))))) {
                goto L37078;}
              else {
                goto L37087;}}
            else {
              goto L37087;}}}}}
      break;
    case 70 : {
      arg2_903X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_904X = SvalS;
      if ((0 == y_904X)) {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_903X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (y_904X);
        arg0K0 = 2;
        goto L25342;}
      else {
        if ((0 == (3 & (arg2_903X | y_904X)))) {
          if ((0 == y_904X)) {
            val_905X = Hinteger_op7411(arg2_903X, y_904X);
            SvalS = val_905X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}
          else {
            a_906X = ((arg2_903X)>>2);
            if ((a_906X < 0)) {
              arg0K0 = (0 - a_906X);
              goto L37292;}
            else {
              arg0K0 = a_906X;
              goto L37292;}}}
        else {
          if ((0 == (3 & arg2_903X))) {
            goto L37254;}
          else {
            if ((3 == (3 & arg2_903X))) {
              if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_903X))) + -4))))>>2))))) {
                goto L37254;}
              else {
                goto L37263;}}
            else {
              goto L37263;}}}}}
      break;
    case 71 : {
      n_907X = SvalS;
      if ((0 == (3 & n_907X))) {
        goto L37441;}
      else {
        if ((3 == (3 & n_907X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_907X))) + -4))))>>2))))) {
            goto L37441;}
          else {
            goto L37442;}}
        else {
          goto L37442;}}}
      break;
    case 72 : {
      n_908X = SvalS;
      if ((0 == (3 & n_908X))) {
        goto L37496;}
      else {
        if ((3 == (3 & n_908X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_908X))) + -4))))>>2))))) {
            goto L37496;}
          else {
            goto L37497;}}
        else {
          goto L37497;}}}
      break;
    case 73 : {
      n_909X = SvalS;
      if ((0 == (3 & n_909X))) {
        goto L37551;}
      else {
        if ((3 == (3 & n_909X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_909X))) + -4))))>>2))))) {
            goto L37551;}
          else {
            goto L37554;}}
        else {
          goto L37554;}}}
      break;
    case 74 : {
      n_910X = SvalS;
      if ((0 == (3 & n_910X))) {
        goto L37611;}
      else {
        if ((3 == (3 & n_910X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_910X))) + -4))))>>2))))) {
            goto L37611;}
          else {
            goto L37612;}}
        else {
          goto L37612;}}}
      break;
    case 75 : {
      n_911X = SvalS;
      if ((0 == (3 & n_911X))) {
        goto L37666;}
      else {
        if ((3 == (3 & n_911X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_911X))) + -4))))>>2))))) {
            goto L37666;}
          else {
            goto L37669;}}
        else {
          goto L37669;}}}
      break;
    case 76 : {
      x_912X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_912X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 77 : {
      x_913X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_913X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 78 : {
      x_914X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_914X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 79 : {
      x_915X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_915X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 80 : {
      x_916X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_916X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 81 : {
      x_917X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_917X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 82 : {
      x_918X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_918X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 83 : {
      x_919X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_919X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 84 : {
      x_920X = SvalS;
      if ((0 == (3 & x_920X))) {
        goto L45236;}
      else {
        if ((3 == (3 & x_920X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_920X))) + -4))))>>2))))) {
            goto L45236;}
          else {
            goto L45239;}}
        else {
          goto L45239;}}}
      break;
    case 85 : {
      x_921X = SvalS;
      if ((0 == (3 & x_921X))) {
        goto L48155;}
      else {
        if ((3 == (3 & x_921X))) {
          if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_921X))) + -4))))>>2))))) {
            goto L48155;}
          else {
            goto L48158;}}
        else {
          goto L48158;}}}
      break;
    case 86 : {
      x_922X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_922X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 87 : {
      arg2_923X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_924X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_923X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_924X);
      arg0K0 = 2;
      goto L25342;}
      break;
    case 88 : {
      arg2_925X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_926X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_925X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_926X);
      arg0K0 = 2;
      goto L25342;}
      break;
    case 89 : {
      arg2_927X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_928X = SvalS;push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_927X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_928X);
      arg0K0 = 2;
      goto L25342;}
      break;
    case 90 : {
      x_929X = SvalS;
      if ((0 == (3 & x_929X))) {
        SvalS = (~ (3 | x_929X));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        if ((0 == (3 & x_929X))) {
          goto L37812;}
        else {
          if ((3 == (3 & x_929X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_929X))) + -4))))>>2))))) {
              goto L37812;}
            else {
              goto L37815;}}
          else {
            goto L37815;}}}}
      break;
    case 91 : {
      x_930X = SvalS;
      if ((0 == (3 & x_930X))) {
        x_931X = ((x_930X)>>2);
        if ((x_931X < 0)) {
          arg0K0 = (~ x_931X);
          goto L37903;}
        else {
          arg0K0 = x_931X;
          goto L37903;}}
      else {
        if ((0 == (3 & x_930X))) {
          goto L37886;}
        else {
          if ((3 == (3 & x_930X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + x_930X))) + -4))))>>2))))) {
              goto L37886;}
            else {
              goto L37889;}}
          else {
            goto L37889;}}}}
      break;
    case 92 : {
      arg2_932X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_933X = SvalS;
      if ((0 == (3 & (arg2_932X | y_933X)))) {
        SvalS = (arg2_932X & y_933X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        if ((0 == (3 & arg2_932X))) {
          goto L37988;}
        else {
          if ((3 == (3 & arg2_932X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_932X))) + -4))))>>2))))) {
              goto L37988;}
            else {
              goto L37997;}}
          else {
            goto L37997;}}}}
      break;
    case 93 : {
      arg2_934X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_935X = SvalS;
      if ((0 == (3 & (arg2_934X | y_935X)))) {
        SvalS = (arg2_934X | y_935X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        if ((0 == (3 & arg2_934X))) {
          goto L38151;}
        else {
          if ((3 == (3 & arg2_934X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_934X))) + -4))))>>2))))) {
              goto L38151;}
            else {
              goto L38160;}}
          else {
            goto L38160;}}}}
      break;
    case 94 : {
      arg2_936X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_937X = SvalS;
      if ((0 == (3 & (arg2_936X | y_937X)))) {
        SvalS = (arg2_936X ^ y_937X);
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        if ((0 == (3 & arg2_936X))) {
          goto L38314;}
        else {
          if ((3 == (3 & arg2_936X))) {
            if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_936X))) + -4))))>>2))))) {
              goto L38314;}
            else {
              goto L38323;}}
          else {
            goto L38323;}}}}
      break;
    case 95 : {
      arg2_938X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      y_939X = SvalS;
      if ((3 == (3 & y_939X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_939X))) + -4))))>>2))))) {
          v_940X = s48_bignum_test((((char *) (-3 + y_939X))));
          if ((1 == v_940X)) {push_exception_setupB(6, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_938X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (y_939X);
            arg0K0 = 2;
            goto L25342;}
          else {
            if ((0 == (3 & arg2_938X))) {
              if ((arg2_938X < 0)) {
                arg0K0 = -4;
                goto L34706;}
              else {
                arg0K0 = 0;
                goto L34706;}}
            else {
              if ((3 == (3 & arg2_938X))) {
                if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_938X))) + -4))))>>2))))) {
                  v_941X = s48_bignum_test((((char *) (-3 + arg2_938X))));
                  if ((1 == v_941X)) {
                    arg0K0 = 0;
                    goto L34722;}
                  else {
                    arg0K0 = -4;
                    goto L34722;}}
                else {
                  goto L34723;}}
              else {
                goto L34723;}}}}
        else {
          goto L44296;}}
      else {
        goto L44296;}}
      break;
    case 96 : {
      x_942X = SvalS;
      if ((9 == (255 & x_942X))) {
        arg0K0 = 5;
        goto L51978;}
      else {
        arg0K0 = 1;
        goto L51978;}}
      break;
    case 97 : {
      arg2_943X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_943X))) {
        if ((9 == (255 & (SvalS)))) {
          x_944X = SvalS;
          if ((arg2_943X == x_944X)) {
            arg0K0 = 5;
            goto L41565;}
          else {
            arg0K0 = 1;
            goto L41565;}}
        else {
          goto L41536;}}
      else {
        goto L41536;}}
      break;
    case 98 : {
      arg2_945X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((9 == (255 & arg2_945X))) {
        if ((9 == (255 & (SvalS)))) {
          x_946X = SvalS;
          if ((arg2_945X < x_946X)) {
            arg0K0 = 5;
            goto L41473;}
          else {
            arg0K0 = 1;
            goto L41473;}}
        else {
          goto L41444;}}
      else {
        goto L41444;}}
      break;
    case 99 : {
      if ((9 == (255 & (SvalS)))) {
        SvalS = ((((((unsigned char) (((char) ((((SvalS))>>8)))))))<<2));
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {push_exception_setupB(5, 1);
        x_947X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_947X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 100 : {
      if ((0 == (3 & (SvalS)))) {
        x_948X = (((SvalS))>>2);
        if ((255 < x_948X)) {
          goto L45545;}
        else {
          if ((x_948X < 0)) {
            goto L45545;}
          else {
            SvalS = (9 + ((((((unsigned char) (((char) x_948X)))))<<8)));
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}}}
      else {push_exception_setupB(5, 1);
        x_949X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_949X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 101 : {
      x_950X = SvalS;
      if ((21 == x_950X)) {
        arg0K0 = 5;
        goto L52009;}
      else {
        arg0K0 = 1;
        goto L52009;}}
      break;
    case 102 : {
      x_951X = SvalS;
      type_952X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & x_951X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + x_951X))) + -4))))>>2))) == type_952X)) {
          arg0K0 = 5;
          goto L52023;}
        else {
          arg0K0 = 1;
          goto L52023;}}
      else {
        arg0K0 = 1;
        goto L52023;}}
      break;
    case 103 : {
      stob_953X = SvalS;
      type_954X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((3 == (3 & stob_953X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_953X))) + -4))))>>2))) == type_954X)) {
          SvalS = (-4 & (3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + stob_953X))) + -4))))>>8))));
          Scode_pointerS = ((Scode_pointerS) + 2);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L29467;}}
      else {
        goto L29467;}}
      break;
    case 104 : {
      len_955X = *((unsigned char *) ((Scode_pointerS) + 1));s48_make_availableAgc((4 + (((len_955X)<<2))));
      type_956X = *((unsigned char *) ((Scode_pointerS) + 2));
      len_957X = ((len_955X)<<2);
      addr_958X = s48_allocate_small((4 + len_957X));
      *((long *) addr_958X) = (long) ((2 + (((((((len_957X)<<6)) + type_956X))<<2))));
      new_959X = 3 + (((long) (addr_958X + 4)));
      if ((len_955X < 1)) {
        goto L29572;}
      else {
        *((long *) ((((char *) (-3 + new_959X))) + (-4 + (((len_955X)<<2))))) = (long) ((SvalS));
        arg0K0 = (-2 + len_955X);
        goto L29556;}}
      break;
    case 105 : {
      p_960X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      len_961X = ((p_960X)>>2);s48_make_availableAgc((4 + (((len_961X)<<2))));
      type_962X = *((unsigned char *) ((Scode_pointerS) + 1));
      len_963X = ((len_961X)<<2);
      addr_964X = s48_allocate_small((4 + len_963X));
      *((long *) addr_964X) = (long) ((2 + (((((((len_963X)<<6)) + type_962X))<<2))));
      new_965X = 3 + (((long) (addr_964X + 4)));
      p_966X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      stack_nargs_967X = ((p_966X)>>2);
      rest_list_968X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = (-1 + stack_nargs_967X);
      goto L29690;}
      break;
    case 106 : {
      stob_969X = SvalS;
      type_970X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_971X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_969X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_969X))) + -4))))>>2))) == type_970X)) {
          SvalS = (*((long *) ((((char *) (-3 + stob_969X))) + (((offset_971X)<<2)))));
          Scode_pointerS = ((Scode_pointerS) + 3);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L29858;}}
      else {
        goto L29858;}}
      break;
    case 107 : {
      arg2_972X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_973X = SvalS;
      type_974X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_975X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & arg2_972X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + arg2_972X))) + -4))))>>2))) == type_974X)) {
          if ((3 == (3 & arg2_972X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + arg2_972X))) + -4)))))) {
              v_976X = *((unsigned char *) ((Scode_pointerS) + 3));
              if ((0 == v_976X)) {
                goto L29975;}
              else {
                if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                  goto L29975;}
                else {
                  merged_arg0K0 = arg2_972X;
                  merged_arg0K1 = (((offset_975X)<<2));
                  merged_arg0K2 = value_973X;
                  proposal_d_write_return_tag = 0;
                  goto proposal_d_write;
                 proposal_d_write_return_0:
                  goto L29984;}}}
            else {
              goto L29985;}}
          else {
            goto L29985;}}
        else {
          goto L29985;}}
      else {
        goto L29985;}}
      break;
    case 108 : {
      arg2_977X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      init_978X = SvalS;
      type_979X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_977X))) {
        len_980X = ((arg2_977X)>>2);
        if ((len_980X < 0)) {
          goto L30202;}
        else {
          if ((4194304 < len_980X)) {
            goto L30202;}
          else {
            Stemp0S = init_978X;
            len_981X = ((len_980X)<<2);
            addr_982X = s48_allocate_tracedAgc((4 + len_981X));
            if ((addr_982X == NULL)) {
              arg0K0 = 1;
              goto L30219;}
            else {
              *((long *) addr_982X) = (long) ((2 + (((((((len_981X)<<6)) + type_979X))<<2))));
              arg0K0 = (3 + (((long) (addr_982X + 4))));
              goto L30219;}}}}
      else {push_exception_setupB(5, 2);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((type_979X)<<2)));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_977X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (init_978X);
        arg0K0 = 3;
        goto L25342;}}
      break;
    case 109 : {
      arg2_983X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      index_984X = SvalS;
      type_985X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & index_984X))) {
        if ((3 == (3 & arg2_983X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg2_983X))) + -4))))>>2))) == type_985X)) {
            len_986X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_983X))) + -4))))>>8))))>>2);
            index_987X = ((index_984X)>>2);
            if ((index_987X < 0)) {
              goto L30492;}
            else {
              if ((index_987X < len_986X)) {
                v_988X = *((unsigned char *) ((Scode_pointerS) + 2));
                if ((0 == v_988X)) {
                  goto L30482;}
                else {
                  if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                    goto L30482;}
                  else {
                    merged_arg0K0 = arg2_983X;
                    merged_arg0K1 = index_984X;
                    proposal_d_read_return_tag = 0;
                    goto proposal_d_read;
                   proposal_d_read_return_0:
                    v_989X = proposal_d_read0_return_value;
                    arg0K0 = v_989X;
                    goto L30491;}}}
              else {
                goto L30492;}}}
          else {
            goto L30447;}}
        else {
          goto L30447;}}
      else {
        goto L30447;}}
      break;
    case 110 : {
      arg2_990X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_991X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      value_992X = SvalS;
      type_993X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == (3 & arg2_990X))) {
        if ((3 == (3 & arg3_991X))) {
          if (((31 & ((((*((long *) ((((char *) (-3 + arg3_991X))) + -4))))>>2))) == type_993X)) {
            if ((3 == (3 & arg3_991X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_991X))) + -4)))))) {
                len_994X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_991X))) + -4))))>>8))))>>2);
                index_995X = ((arg2_990X)>>2);
                if ((index_995X < 0)) {
                  goto L30779;}
                else {
                  if ((index_995X < len_994X)) {
                    v_996X = *((unsigned char *) ((Scode_pointerS) + 2));
                    if ((0 == v_996X)) {
                      goto L30769;}
                    else {
                      if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                        goto L30769;}
                      else {
                        merged_arg0K0 = arg3_991X;
                        merged_arg0K1 = arg2_990X;
                        merged_arg0K2 = value_992X;
                        proposal_d_write_return_tag = 1;
                        goto proposal_d_write;
                       proposal_d_write_return_1:
                        goto L30778;}}}
                  else {
                    goto L30779;}}}
              else {
                goto L30732;}}
            else {
              goto L30732;}}
          else {
            goto L30732;}}
        else {
          goto L30732;}}
      else {
        goto L30732;}}
      break;
    case 111 : {
      addr_997X = s48_allocate_untracedAgc(12);
      if ((addr_997X == NULL)) {
        arg0K0 = 1;
        goto L52066;}
      else {
        *((long *) addr_997X) = (long) (2122);
        arg0K0 = (3 + (((long) (addr_997X + 4))));
        goto L52066;}}
      break;
    case 112 : {
      arg2_998X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (arg2_998X | (SvalS))))) {
        len_999X = ((arg2_998X)>>2);
        init_1000X = (((SvalS))>>2);
        if ((len_999X < 0)) {
          goto L38581;}
        else {
          if ((4194304 < ((((3 + len_999X))>>2)))) {
            goto L38581;}
          else {
            addr_1001X = s48_allocate_untracedAgc((4 + len_999X));
            if ((addr_1001X == NULL)) {
              arg0K0 = 1;
              goto L38594;}
            else {
              *((long *) addr_1001X) = (long) ((70 + (((len_999X)<<8))));
              arg0K0 = (3 + (((long) (addr_1001X + 4))));
              goto L38594;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_998X);
        x_1002X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1002X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 113 : {
      obj_1003X = SvalS;
      if ((3 == (3 & obj_1003X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + obj_1003X))) + -4))))>>2))))) {
          SvalS = (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L49373;}}
      else {
        goto L49373;}}
      break;
    case 114 : {
      arg2_1004X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1004X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1004X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1005X = (((SvalS))>>2);
            len_1006X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1004X))) + -4))))>>8);
            if ((index_1005X < 0)) {
              goto L45682;}
            else {
              if ((index_1005X < len_1006X)) {
                SvalS = ((((*((unsigned char *) ((((char *) (-3 + arg2_1004X))) + index_1005X))))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg1K0 = (Scode_pointerS);
                goto L26704;}
              else {
                goto L45682;}}}
          else {
            goto L48808;}}
        else {
          goto L48808;}}
      else {
        goto L48808;}}
      break;
    case 115 : {
      arg2_1007X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1008X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1008X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1008X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1007X | (SvalS))))) {
            index_1009X = ((arg2_1007X)>>2);
            Kchar_1010X = (((SvalS))>>2);
            if ((3 == (3 & arg3_1008X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1008X))) + -4)))))) {
                len_1011X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1008X))) + -4))))>>8);
                if ((index_1009X < 0)) {
                  goto L42883;}
                else {
                  if ((index_1009X < len_1011X)) {
                    *((unsigned char *) ((((char *) (-3 + arg3_1008X))) + index_1009X)) = (unsigned char) (Kchar_1010X);
                    SvalS = 13;
                    Scode_pointerS = ((Scode_pointerS) + 1);
                    arg1K0 = (Scode_pointerS);
                    goto L26704;}
                  else {
                    goto L42883;}}}
              else {
                goto L42862;}}
            else {
              goto L42862;}}
          else {
            goto L47475;}}
        else {
          goto L47475;}}
      else {
        goto L47475;}}
      break;
    case 116 : {
      arg2_1012X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1012X))) {
        if ((9 == (255 & (SvalS)))) {
          len_1013X = ((arg2_1012X)>>2);
          init_1014X = ((char) ((((SvalS))>>8)));
          if ((len_1013X < 0)) {
            goto L38761;}
          else {
            if ((4194304 < ((((4 + len_1013X))>>2)))) {
              goto L38761;}
            else {
              len_1015X = 1 + len_1013X;
              addr_1016X = s48_allocate_untracedAgc((4 + len_1015X));
              if ((addr_1016X == NULL)) {
                arg0K0 = 1;
                goto L38774;}
              else {
                *((long *) addr_1016X) = (long) ((66 + (((len_1015X)<<8))));
                arg0K0 = (3 + (((long) (addr_1016X + 4))));
                goto L38774;}}}}
        else {
          goto L45763;}}
      else {
        goto L45763;}}
      break;
    case 117 : {
      obj_1017X = SvalS;
      if ((3 == (3 & obj_1017X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1017X))) + -4))))>>2))))) {
          SvalS = (-4 + (((((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8)))<<2)));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L49423;}}
      else {
        goto L49423;}}
      break;
    case 118 : {
      arg2_1018X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1018X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1018X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1019X = (((SvalS))>>2);
            len_1020X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1018X))) + -4))))>>8));
            if ((index_1019X < 0)) {
              goto L45828;}
            else {
              if ((index_1019X < len_1020X)) {
                SvalS = (9 + ((((((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + arg2_1018X))) + index_1019X))))))))<<8)));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg1K0 = (Scode_pointerS);
                goto L26704;}
              else {
                goto L45828;}}}
          else {
            goto L48906;}}
        else {
          goto L48906;}}
      else {
        goto L48906;}}
      break;
    case 119 : {
      arg2_1021X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1022X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1022X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1022X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1021X))) {
            if ((9 == (255 & (SvalS)))) {
              index_1023X = ((arg2_1021X)>>2);
              Kchar_1024X = ((char) ((((SvalS))>>8)));
              if ((3 == (3 & arg3_1022X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1022X))) + -4)))))) {
                  len_1025X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1022X))) + -4))))>>8));
                  if ((index_1023X < 0)) {
                    goto L43038;}
                  else {
                    if ((index_1023X < len_1025X)) {
                      *((unsigned char *) ((((char *) (-3 + arg3_1022X))) + index_1023X)) = (unsigned char) ((((unsigned char) Kchar_1024X)));
                      SvalS = 13;
                      Scode_pointerS = ((Scode_pointerS) + 1);
                      arg1K0 = (Scode_pointerS);
                      goto L26704;}
                    else {
                      goto L43038;}}}
                else {
                  goto L43017;}}
              else {
                goto L43017;}}
            else {
              goto L47605;}}
          else {
            goto L47605;}}
        else {
          goto L47605;}}
      else {
        goto L47605;}}
      break;
    case 120 : {s48_make_availableAgc(12);
      obj_1026X = SvalS;
      if ((3 == (3 & obj_1026X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1026X))) + -4))))>>2))))) {
          table_1027X = Sthe_symbol_tableS;
          string_1028X = SvalS;
          n_1029X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + string_1028X))) + -4))))>>8));
          arg0K0 = 0;
          arg0K1 = 0;
          goto L23067;}
        else {
          goto L34868;}}
      else {
        goto L34868;}}
      break;
    case 121 : {
      obj_1030X = SvalS;
      if ((3 == (3 & obj_1030X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + obj_1030X))) + -4))))>>2))))) {
          x_1031X = SvalS;
          descriptor_1032X = *((long *) ((((char *) (-3 + x_1031X))) + 4));
          if ((17 == (255 & descriptor_1032X))) {
            if ((529 == (*((long *) ((((char *) (-3 + x_1031X))) + 4))))) {
              arg0K0 = 5;
              goto L47169;}
            else {
              arg0K0 = 1;
              goto L47169;}}
          else {
            arg0K0 = 5;
            goto L47169;}}
        else {
          goto L47150;}}
      else {
        goto L47150;}}
      break;
    case 122 : {
      arg2_1033X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1033X))) {
        if ((4 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1033X))) + -4))))>>2))))) {
          x_1034X = SvalS;
          if ((1 == x_1034X)) {
            goto L42640;}
          else {
            if ((5 == x_1034X)) {
              goto L42640;}
            else {
              goto L42647;}}}
        else {
          goto L42647;}}
      else {
        goto L42647;}}
      break;
    case 123 : {
      x_1035X = SvalS;
      if ((3 == (3 & x_1035X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1035X))) + -4)))))) {
          arg0K0 = 1;
          goto L52126;}
        else {
          arg0K0 = 5;
          goto L52126;}}
      else {
        arg0K0 = 5;
        goto L52126;}}
      break;
    case 124 : {
      x_1036X = SvalS;
      if ((3 == (3 & x_1036X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + x_1036X))) + -4)))))) {
          *((long *) ((((char *) (-3 + x_1036X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_1036X))) + -4)))));
          goto L45910;}
        else {
          goto L45910;}}
      else {
        goto L45910;}}
      break;
    case 125 : {s48_make_availableAgc(32);
      arg2_1037X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1038X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1037X))) {
        mode_1039X = ((arg2_1037X)>>2);
        close_silentlyP_1040X = SvalS;
        if ((1 == mode_1039X)) {
          goto L39186;}
        else {
          if ((2 == mode_1039X)) {
            goto L39186;}
          else {
            if ((3 == mode_1039X)) {
              goto L39186;}
            else {
              if ((4 == mode_1039X)) {
                goto L39186;}
              else {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg3_1038X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
                arg0K0 = 2;
                goto L25342;}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1038X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1037X);
        x_1041X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1041X);
        arg0K0 = 3;
        goto L25342;}}
      break;
    case 126 : {s48_make_availableAgc(520);
      obj_1042X = SvalS;
      if ((3 == (3 & obj_1042X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1042X))) + -4))))>>2))))) {
          channel_1043X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1043X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1043X);
            arg0K0 = 1;
            goto L25342;}
          else {
            status_1044X = close_channelB(channel_1043X);
            if ((status_1044X == NO_ERRORS)) {
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg1K0 = (Scode_pointerS);
              goto L26704;}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1043X);
              merged_arg0K0 = status_1044X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 0;
              goto get_error_string;
             get_error_string_return_0:
              x_1045X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1045X);
              arg0K0 = 2;
              goto L25342;}}}
        else {
          goto L52145;}}
      else {
        goto L52145;}}
      break;
    case 127 : {s48_make_availableAgc(8);
      arg2_1046X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1047X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1048X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1049X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg5_1049X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg5_1049X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg3_1047X | arg2_1046X)))) {
            x_1050X = SvalS;
            if ((1 == x_1050X)) {
              goto L46081;}
            else {
              if ((5 == x_1050X)) {
                goto L46081;}
              else {
                goto L46092;}}}
          else {
            goto L46092;}}
        else {
          goto L46092;}}
      else {
        goto L46092;}}
      break;
    case 128 : {s48_make_availableAgc(8);
      arg2_1051X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1052X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1053X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1053X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1053X))) + -4))))>>2))))) {
          if ((0 == (3 & (arg2_1051X | (SvalS))))) {
            start_1054X = ((arg2_1051X)>>2);
            count_1055X = (((SvalS))>>2);
            v_1056X = 8 == (*((long *) (((char *) (-3 + arg4_1053X)))));
            if (v_1056X) {
              if ((3 == (3 & arg3_1052X))) {
                if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1052X))) + -4))))>>2))))) {
                  goto L39779;}
                else {
                  goto L39931;}}
              else {
                goto L39931;}}
            else {
              goto L39821;}}
          else {
            goto L46295;}}
        else {
          goto L46295;}}
      else {
        goto L46295;}}
      break;
    case 129 : {
      x_1057X = ps_io_buffer_size();
      SvalS = (((x_1057X)<<2));
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 130 : {s48_make_availableAgc(520);
      obj_1058X = SvalS;
      if ((3 == (3 & obj_1058X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1058X))) + -4))))>>2))))) {
          channel_1059X = SvalS;
          if ((0 == (*((long *) (((char *) (-3 + channel_1059X))))))) {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (channel_1059X);
            arg0K0 = 1;
            goto L25342;}
          else {
            readyP_1060X = ps_check_fd(((((*((long *) ((((char *) (-3 + channel_1059X))) + 8))))>>2)), (4 == (*((long *) (((char *) (-3 + channel_1059X)))))), &status_1061X);
            if ((status_1061X == NO_ERRORS)) {
              if (readyP_1060X) {
                arg0K0 = 5;
                goto L42231;}
              else {
                arg0K0 = 1;
                goto L42231;}}
            else {push_exception_setupB(24, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (channel_1059X);
              merged_arg0K0 = status_1061X;
              merged_arg0K1 = 0;
              get_error_string_return_tag = 1;
              goto get_error_string;
             get_error_string_return_1:
              x_1062X = get_error_string0_return_value;
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (x_1062X);
              arg0K0 = 2;
              goto L25342;}}}
        else {
          goto L52175;}}
      else {
        goto L52175;}}
      break;
    case 131 : {
      obj_1063X = SvalS;
      if ((3 == (3 & obj_1063X))) {
        if ((6 == (31 & ((((*((long *) ((((char *) (-3 + obj_1063X))) + -4))))>>2))))) {
          channel_1064X = SvalS;
          head_1065X = Spending_channels_headS;
          if ((1 == head_1065X)) {
            addr_1066X = (((char *) (-3 + channel_1064X))) + 20;S48_WRITE_BARRIER(channel_1064X, addr_1066X, 1);
            *((long *) addr_1066X) = (long) (1);
            n_1067X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1064X))) + 8))))>>2)));
            arg0K0 = (((n_1067X)<<2));
            goto L46443;}
          else {
            if ((channel_1064X == head_1065X)) {
              channel_1068X = Spending_channels_headS;
              next_1069X = *((long *) ((((char *) (-3 + channel_1068X))) + 16));
              Spending_channels_headS = next_1069X;
              addr_1070X = (((char *) (-3 + channel_1068X))) + 16;S48_WRITE_BARRIER(channel_1068X, addr_1070X, 1);
              *((long *) addr_1070X) = (long) (1);
              if ((1 == next_1069X)) {
                Spending_channels_tailS = 1;
                goto L12130;}
              else {
                goto L12130;}}
            else {
              arg0K0 = (*((long *) ((((char *) (-3 + head_1065X))) + 16)));
              arg0K1 = head_1065X;
              goto L12148;}}}
        else {
          goto L46426;}}
      else {
        goto L46426;}}
      break;
    case 132 : {s48_make_availableAgc(((((3 * (Snumber_of_channelsS)))<<2)));
      arg0K0 = (-1 + (Snumber_of_channelsS));
      arg0K1 = 25;
      goto L18990;}
      break;
    case 133 : {
      SvalS = (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)));
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 134 : {
      proposal_1071X = SvalS;
      if ((1 == proposal_1071X)) {
        goto L40064;}
      else {
        if ((3 == (3 & proposal_1071X))) {
          if ((2 == (31 & ((((*((long *) ((((char *) (-3 + proposal_1071X))) + -4))))>>2))))) {
            if ((4 == ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proposal_1071X))) + -4))))>>8))))>>2)))) {
              if ((1 == (*((long *) (((char *) (-3 + proposal_1071X))))))) {
                goto L40064;}
              else {
                goto L40095;}}
            else {
              goto L40095;}}
          else {
            goto L40095;}}
        else {
          goto L40095;}}}
      break;
    case 135 : {
      proposal_1072X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
      if ((1 == proposal_1072X)) {push_exception_setupB(26, 1);
        arg0K0 = 0;
        goto L25342;}
      else {GET_PROPOSAL_LOCK();
        log_1073X = *((long *) ((((char *) (-3 + proposal_1072X))) + 4));
        arg0K0 = 0;
        goto L10903;}}
      break;
    case 136 : {
      stob_1074X = SvalS;
      type_1075X = *((unsigned char *) ((Scode_pointerS) + 1));
      offset_1076X = *((unsigned char *) ((Scode_pointerS) + 2));
      if ((3 == (3 & stob_1074X))) {
        if (((31 & ((((*((long *) ((((char *) (-3 + stob_1074X))) + -4))))>>2))) == type_1075X)) {
          x_1077X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          if ((1 == x_1077X)) {
            arg0K0 = (*((long *) ((((char *) (-3 + stob_1074X))) + (((offset_1076X)<<2)))));
            goto L31077;}
          else {
            merged_arg0K0 = stob_1074X;
            merged_arg0K1 = (((offset_1076X)<<2));
            proposal_d_read_return_tag = 1;
            goto proposal_d_read;
           proposal_d_read_return_1:
            v_1078X = proposal_d_read0_return_value;
            arg0K0 = v_1078X;
            goto L31077;}}
        else {
          goto L31078;}}
      else {
        goto L31078;}}
      break;
    case 137 : {
      arg2_1079X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1080X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1081X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg5_1082X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & ((arg4_1081X | arg2_1079X) | (SvalS))))) {
        from_index_1083X = ((arg4_1081X)>>2);
        to_index_1084X = ((arg2_1079X)>>2);
        count_1085X = (((SvalS))>>2);
        v_1086X = *((unsigned char *) ((Scode_pointerS) + 1));
        merged_arg0K0 = arg5_1082X;
        merged_arg0K1 = from_index_1083X;
        merged_arg0K2 = count_1085X;
        okay_copy_argsP_return_tag = 0;
        goto okay_copy_argsP;
       okay_copy_argsP_return_0:
        v_1087X = okay_copy_argsP0_return_value;
        if (v_1087X) {
          merged_arg0K0 = arg3_1080X;
          merged_arg0K1 = to_index_1084X;
          merged_arg0K2 = count_1085X;
          okay_copy_argsP_return_tag = 1;
          goto okay_copy_argsP;
         okay_copy_argsP_return_1:
          v_1088X = okay_copy_argsP0_return_value;
          if (v_1088X) {
            if ((3 == (3 & arg3_1080X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1080X))) + -4)))))) {
                if ((count_1085X < 0)) {
                  goto L31171;}
                else {
                  if ((0 == v_1086X)) {
                    goto L31231;}
                  else {
                    if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                      goto L31231;}
                    else {
                      arg0K0 = 4096;
                      arg0K1 = (*((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 12)));
                      goto L31319;}}}}
              else {
                goto L31171;}}
            else {
              goto L31171;}}
          else {
            goto L31171;}}
        else {
          goto L31171;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg5_1082X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1081X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1080X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1079X);
        x_1089X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1089X);
        arg0K0 = 5;
        goto L25342;}}
      break;
    case 138 : {
      arg2_1090X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1090X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>2))))) {
          if ((0 == (3 & (SvalS)))) {
            index_1091X = (((SvalS))>>2);
            len_1092X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1090X))) + -4))))>>8);
            if ((index_1091X < 0)) {
              goto L31528;}
            else {
              if ((index_1091X < len_1092X)) {
                x_1093X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                if ((1 == x_1093X)) {
                  arg0K0 = ((((*((unsigned char *) ((((char *) (-3 + arg2_1090X))) + index_1091X))))<<2));
                  goto L31527;}
                else {
                  index_1094X = ((index_1091X)<<2);
                  log_1095X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                  arg0K0 = 0;
                  goto L16529;}}
              else {
                goto L31528;}}}
          else {
            goto L34158;}}
        else {
          goto L34158;}}
      else {
        goto L34158;}}
      break;
    case 139 : {
      arg2_1096X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1097X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg3_1097X))) {
        if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1097X))) + -4))))>>2))))) {
          if ((0 == (3 & arg2_1096X))) {
            index_1098X = ((arg2_1096X)>>2);
            byte_1099X = SvalS;
            if ((3 == (3 & arg3_1097X))) {
              if ((0 == (128 & (*((long *) ((((char *) (-3 + arg3_1097X))) + -4)))))) {
                if ((0 == (3 & byte_1099X))) {
                  len_1100X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1097X))) + -4))))>>8);
                  if ((index_1098X < 0)) {
                    goto L31654;}
                  else {
                    if ((index_1098X < len_1100X)) {
                      x_1101X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
                      if ((1 == x_1101X)) {
                        *((unsigned char *) ((((char *) (-3 + arg3_1097X))) + index_1098X)) = (unsigned char) ((((byte_1099X)>>2)));
                        goto L31653;}
                      else {
                        index_1102X = ((index_1098X)<<2);
                        log_1103X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 8));
                        arg0K0 = 0;
                        goto L16705;}}
                    else {
                      goto L31654;}}}
                else {
                  goto L31619;}}
              else {
                goto L31619;}}
            else {
              goto L31619;}}
          else {
            goto L34263;}}
        else {
          goto L34263;}}
      else {
        goto L34263;}}
      break;
    case 140 : {
      SvalS = 529;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 141 : {
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 142 : {
      x_1104X = SvalS;push_exception_setupB(15, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1104X);
      arg0K0 = 1;
      goto L25342;}
      break;
    case 143 : {
      SvalS = 1;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 144 : {
      SvalS = 21;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 145 : {s48_make_availableAgc(520);
      arg2_1105X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1106X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1107X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg4_1107X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1107X))) + -4))))>>2))))) {
          if ((3 == (3 & arg2_1105X))) {
            if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1105X))) + -4))))>>2))))) {
              obj_1108X = SvalS;
              if ((3 == (3 & obj_1108X))) {
                if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1108X))) + -4))))>>2))))) {
                  undumpables_1109X = SvalS;
                  port_1110X = ps_open_output_file((((char *)(((char *) (-3 + arg4_1107X))))), &status_1111X);
                  if ((status_1111X == NO_ERRORS)) {
                    status_1112X = ps_write_string((((char *)(((char *) (-3 + arg2_1105X))))), port_1110X);
                    if ((status_1112X == NO_ERRORS)) {
                      status_1113X = s48_write_image(arg3_1106X, undumpables_1109X, port_1110X);
                      if ((status_1113X == NO_ERRORS)) {
                        status_1114X = ps_close(port_1110X);
                        if ((status_1114X == NO_ERRORS)) {
                          SvalS = 13;
                          Scode_pointerS = ((Scode_pointerS) + 1);
                          arg1K0 = (Scode_pointerS);
                          goto L26704;}
                        else {
                          arg0K0 = 24;
                          arg0K1 = status_1114X;
                          goto L43266;}}
                      else {
                        status_1115X = ps_close(port_1110X);
                        if ((status_1115X == NO_ERRORS)) {
                          arg0K0 = 24;
                          arg0K1 = status_1113X;
                          goto L43266;}
                        else {
                          ps_write_string("Unable to close image file", (stderr));
                          { long ignoreXX;
                          PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                          arg0K0 = 24;
                          arg0K1 = status_1113X;
                          goto L43266;}}}
                    else {
                      status_1116X = ps_close(port_1110X);
                      if ((status_1116X == NO_ERRORS)) {
                        arg0K0 = 24;
                        arg0K1 = status_1112X;
                        goto L43266;}
                      else {
                        ps_write_string("Unable to close image file", (stderr));
                        { long ignoreXX;
                        PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                        arg0K0 = 24;
                        arg0K1 = status_1112X;
                        goto L43266;}}}
                  else {
                    arg0K0 = 10;
                    arg0K1 = status_1111X;
                    goto L43266;}}
                else {
                  goto L47806;}}
              else {
                goto L47806;}}
            else {
              goto L47806;}}
          else {
            goto L47806;}}
        else {
          goto L47806;}}
      else {
        goto L47806;}}
      break;
    case 146 : {
      SvalS = 13;s48_collect();
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 147 : {
      obj_1117X = SvalS;
      if ((3 == (3 & obj_1117X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1117X))) + -4))))>>2))))) {
          x_1118X = SvalS;
          n_1119X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1118X))) + -4))))>>8));
          arg0K0 = 0;
          arg0K1 = 0;
          goto L48542;}
        else {
          goto L48519;}}
      else {
        goto L48519;}}
      break;
    case 148 : {s48_make_availableAgc(24);
      arg2_1120X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      proc_1121X = SvalS;
      if ((3 == (3 & arg2_1120X))) {
        if ((3 == (3 & proc_1121X))) {
          if ((3 == (31 & ((((*((long *) ((((char *) (-3 + proc_1121X))) + -4))))>>2))))) {GET_PROPOSAL_LOCK();
            addr_1122X = s48_allocate_small(12);
            *((long *) addr_1122X) = (long) (2050);
            x_1123X = 3 + (((long) (addr_1122X + 4)));
            *((long *) (((char *) (-3 + x_1123X)))) = (long) (arg2_1120X);
            *((long *) ((((char *) (-3 + x_1123X))) + 4)) = (long) (proc_1121X);
            b_1124X = SHARED_REF((Sfinalizer_alistS));
            addr_1125X = s48_allocate_small(12);
            *((long *) addr_1125X) = (long) (2050);
            x_1126X = 3 + (((long) (addr_1125X + 4)));
            *((long *) (((char *) (-3 + x_1126X)))) = (long) (x_1123X);
            *((long *) ((((char *) (-3 + x_1126X))) + 4)) = (long) (b_1124X);SHARED_SETB((Sfinalizer_alistS), x_1126X);RELEASE_PROPOSAL_LOCK();
            SvalS = 13;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}
          else {
            goto L43541;}}
        else {
          goto L43541;}}
      else {
        goto L43541;}}
      break;
    case 149 : {
      arg2_1127X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1127X))) {
        key_1128X = ((arg2_1127X)>>2);
        other_1129X = SvalS;
        if ((5 == key_1128X)) {
          SvalS = (-4 & other_1129X);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          if ((0 == key_1128X)) {
            x_1130X = s48_available();
            SvalS = (((x_1130X)<<2));
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}
          else {
            if ((1 == key_1128X)) {
              bytes_1131X = s48_heap_size();
              SvalS = (-4 & (3 + bytes_1131X));
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg1K0 = (Scode_pointerS);
              goto L26704;}
            else {
              if ((2 == key_1128X)) {
                SvalS = (((((Sstack_endS) - (Sstack_beginS)))<<2));
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg1K0 = (Scode_pointerS);
                goto L26704;}
              else {
                if ((3 == key_1128X)) {
                  x_1132X = s48_gc_count();
                  SvalS = (((x_1132X)<<2));
                  Scode_pointerS = ((Scode_pointerS) + 1);
                  arg1K0 = (Scode_pointerS);
                  goto L26704;}
                else {
                  if ((4 == key_1128X)) {push_exception_setupB(14, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1128X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1129X);
                    arg0K0 = 2;
                    goto L25342;}
                  else {push_exception_setupB(17, 1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) ((((key_1128X)<<2)));
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (other_1129X);
                    arg0K0 = 2;
                    goto L25342;}}}}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1127X);
        x_1133X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1133X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 150 : {
      if ((0 == (3 & (SvalS)))) {
        type_1134X = (((SvalS))>>2);
        arg2K0 = 1;
        goto L46562;}
      else {push_exception_setupB(5, 1);
        x_1135X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1135X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 151 : {
      x_1136X = SvalS;
      arg2K0 = 1;
      arg0K1 = x_1136X;
      goto L52283;}
      break;
    case 152 : {
      SvalS = (Scurrent_threadS);
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 153 : {
      Scurrent_threadS = (SvalS);
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 154 : {
      val_1137X = SHARED_REF((Ssession_dataS));
      SvalS = val_1137X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 155 : {SHARED_SETB((Ssession_dataS), (SvalS));
      SvalS = 13;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 156 : {
      obj_1138X = SvalS;
      if ((3 == (3 & obj_1138X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1138X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 184)) {
            goto L28440;}
          else {
            temp_1139X = SHARED_REF((Sexception_handlersS));SHARED_SETB((Sexception_handlersS), (SvalS));
            SvalS = temp_1139X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}}
        else {
          goto L28440;}}
      else {
        goto L28440;}}
      break;
    case 157 : {
      data_1140X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1141X = *((long *) ((((char *) (-3 + data_1140X))) + 8));
      exception_1142X = *((long *) ((((char *) (-3 + data_1140X))) + 12));
      size_1143X = *((long *) ((((char *) (-3 + data_1140X))) + 16));
      pc_1144X = (((*((long *) ((((char *) (-3 + data_1140X))) + 4))))>>2);
      opcode_1145X = *((unsigned char *) ((((char *) (-3 + code_1141X))) + pc_1144X));
      if ((opcode_1145X < 51)) {
        if ((4 == opcode_1145X)) {
          goto L26786;}
        else {
          Slast_code_calledS = code_1141X;
          Scode_pointerS = ((((char *) (-3 + code_1141X))) + pc_1144X);push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1142X);
          arg0K0 = 1;
          goto L25342;}}
      else {
        goto L26786;}}
      break;
    case 158 : {
      data_1146X = 3 + (((long) (SstackS)));
      SstackS = ((SstackS) + 20);
      code_1147X = *((long *) ((((char *) (-3 + data_1146X))) + 8));
      exception_1148X = *((long *) ((((char *) (-3 + data_1146X))) + 12));
      opcode_1149X = (((*((long *) ((((char *) (-3 + data_1146X))) + 4))))>>2);
      if ((opcode_1149X < 51)) {
        if ((4 == opcode_1149X)) {
          goto L25603;}
        else {
          Slast_code_calledS = code_1147X;
          Scode_pointerS = (((char *) (-3 + code_1147X)));push_exception_setupB(28, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (exception_1148X);
          arg0K0 = 1;
          goto L25342;}}
      else {
        goto L25603;}}
      break;
    case 159 : {
      obj_1150X = SvalS;
      if ((3 == (3 & obj_1150X))) {
        if ((2 == (31 & ((((*((long *) ((((char *) (-3 + obj_1150X))) + -4))))>>2))))) {
          if ((((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + (SvalS)))) + -4))))>>8))))>>2)) < 5)) {
            goto L27345;}
          else {
            temp_1151X = SHARED_REF((Sinterrupt_handlersS));SHARED_SETB((Sinterrupt_handlersS), (SvalS));
            SvalS = temp_1151X;
            Scode_pointerS = ((Scode_pointerS) + 1);
            arg1K0 = (Scode_pointerS);
            goto L26704;}}
        else {
          goto L27345;}}
      else {
        goto L27345;}}
      break;
    case 160 : {
      old_1152X = Senabled_interruptsS;
      p_1153X = SvalS;
      Senabled_interruptsS = (((p_1153X)>>2));
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L52331;}
        else {
          goto L52331;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L52331;}}
      break;
    case 161 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 0;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_0:
      pc_1154X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      code_1155X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      Slast_code_calledS = code_1155X;
      Scode_pointerS = ((((char *) (-3 + code_1155X))) + (((pc_1154X)>>2)));
      v_1156X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1156X;
      arg1K0 = (Scode_pointerS);
      goto L26704;}
      break;
    case 162 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 1;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_1:
      v_1157X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1157X;
      p_1158X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1159X = s48_call_native_procedure((SvalS), (((p_1158X)>>2)));
      arg0K0 = v_1159X;
      goto L50012;}
      break;
    case 163 : {
      SstackS = ((SstackS) + 4);
      s48_pop_interrupt_state_return_tag = 2;
      goto s48_pop_interrupt_state;
     s48_pop_interrupt_state_return_2:
      return_address_1160X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      template_1161X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      v_1162X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      SvalS = v_1162X;
      v_1163X = s48_jump_to_native_address(return_address_1160X, template_1161X);
      arg0K0 = v_1163X;
      goto L50012;}
      break;
    case 164 : {
      if ((0 == (3 & (SvalS)))) {
        p_1164X = SvalS;
        Spending_interruptsS = (-2 & (Spending_interruptsS));
        if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
          s48_Sstack_limitS = (Sreal_stack_limitS);
          if ((s48_Spending_eventsPS)) {
            s48_Sstack_limitS = (((char *) -1));
            goto L49574;}
          else {
            goto L49574;}}
        else {
          s48_Sstack_limitS = (((char *) -1));
          goto L49574;}}
      else {push_exception_setupB(5, 1);
        x_1165X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1165X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 165 : {
      arg2_1166X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1166X))) {
        x_1167X = SvalS;
        if ((1 == x_1167X)) {
          goto L47354;}
        else {
          if ((5 == x_1167X)) {
            goto L47354;}
          else {
            goto L47359;}}}
      else {
        goto L47359;}}
      break;
    case 166 : {
      p_1168X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      nargs_1169X = ((p_1168X)>>2);
      p_1170X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      rest_list_1171X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((14 < nargs_1169X)) {push_exception_setupB(19, 1);
        x_1172X = *((long *) ((SstackS) + (-4 + (-4 & p_1170X))));
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1172X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (nargs_1169X);
        arg0K0 = 2;
        goto L25342;}
      else {
        arg0K0 = rest_list_1171X;
        goto L31853;}}
      break;
    case 167 : {s48_make_availableAgc(20);
      arg2_1173X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1173X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1173X))) + -4))))>>2))))) {
          x_1174X = SvalS;
          if ((1 == x_1174X)) {
            goto L46657;}
          else {
            if ((5 == x_1174X)) {
              goto L46657;}
            else {
              goto L46662;}}}
        else {
          goto L46662;}}
      else {
        goto L46662;}}
      break;
    case 168 : {
      arg2_1175X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1175X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1175X))) + -4))))>>2))))) {
          x_1176X = SvalS;
          if ((1 == x_1176X)) {
            goto L33419;}
          else {
            if ((5 == x_1176X)) {
              goto L33419;}
            else {
              goto L33424;}}}
        else {
          goto L33424;}}
      else {
        goto L33424;}}
      break;
    case 169 : {
      arg2K0 = 1;
      goto L52391;}
      break;
    case 170 : {
      arg2_1177X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1177X))) {
        option_1178X = ((arg2_1177X)>>2);
        other_1179X = SvalS;
        if ((2 == option_1178X)) {
          x_1180X = CHEAP_TIME();
          SvalS = (((x_1180X)<<2));
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          if ((0 == option_1178X)) {
            seconds_1181X = s48_run_time(&mseconds_1182X);
            arg0K0 = option_1178X;
            arg0K1 = seconds_1181X;
            arg0K2 = mseconds_1182X;
            goto L48453;}
          else {
            if ((1 == option_1178X)) {
              seconds_1183X = s48_real_time(&mseconds_1184X);
              arg0K0 = option_1178X;
              arg0K1 = seconds_1183X;
              arg0K2 = mseconds_1184X;
              goto L48453;}
            else {push_exception_setupB(17, 1);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) ((((option_1178X)<<2)));
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (other_1179X);
              arg0K0 = 2;
              goto L25342;}}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1177X);
        x_1185X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1185X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 171 : {
      arg2_1186X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1186X))) {
        key_1187X = ((arg2_1186X)>>2);
        value_1188X = SvalS;
        status_1189X = s48_extended_vm(key_1187X, value_1188X);
        if ((0 == status_1189X)) {
          SvalS = (s48_Sextension_valueS);
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          if ((1 == status_1189X)) {push_exception_setupB(22, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1187X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1188X);
            arg0K0 = 2;
            goto L25342;}
          else {push_exception_setupB(23, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((key_1187X)<<2)));
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (value_1188X);
            arg0K0 = 2;
            goto L25342;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1186X);
        x_1190X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1190X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 172 : {
      arg2_1191X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      x_1192X = SvalS;
      Senabled_interruptsS = -1;
      if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
        s48_Sstack_limitS = (Sreal_stack_limitS);
        if ((s48_Spending_eventsPS)) {
          s48_Sstack_limitS = (((char *) -1));
          goto L52446;}
        else {
          goto L52446;}}
      else {
        s48_Sstack_limitS = (((char *) -1));
        goto L52446;}}
      break;
    case 173 : {
      arg2_1193X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((3 == (3 & arg2_1193X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1193X))) + -4))))>>2))))) {
          obj_1194X = SvalS;
          if ((3 == (3 & obj_1194X))) {
            if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1194X))) + -4))))>>2))))) {
              x_1195X = SvalS;
              len_1196X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1193X))) + -4))))>>8);
              if ((len_1196X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1195X))) + -4))))>>8)))) {
                if (((!memcmp((void *)(((char *) (-3 + x_1195X))), (void *)(((char *) (-3 + arg2_1193X))),len_1196X)))) {
                  arg0K0 = 5;
                  goto L41237;}
                else {
                  arg0K0 = 1;
                  goto L41237;}}
              else {
                arg0K0 = 1;
                goto L41237;}}
            else {
              goto L41202;}}
          else {
            goto L41202;}}
        else {
          goto L41202;}}
      else {
        goto L41202;}}
      break;
    case 174 : {s48_make_availableAgc((4 + (-4 & (4 + ((((SvalS))>>2))))));
      arg2_1197X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        n_1198X = (((SvalS))>>2);
        if ((3 == (3 & arg2_1197X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + arg2_1197X))) + -4))))>>2))))) {
            goto L40884;}
          else {
            goto L40836;}}
        else {
          goto L40836;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1197X);
        x_1199X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1199X);
        arg0K0 = 2;
        goto L25342;}}
      break;
    case 175 : {
      arg2_1200X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      list_1201X = SvalS;
      arg0K0 = list_1201X;
      arg0K1 = list_1201X;
      arg2K2 = 1;
      goto L42294;}
      break;
    case 176 : {
      if ((529 == (SvalS))) {push_exception_setupB(0, 1);
        arg0K0 = 0;
        goto L25342;}
      else {
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}}
      break;
    case 177 : {
      arg2_1202X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1203X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & (SvalS)))) {
        index_1204X = (((SvalS))>>2);
        if ((3 == (3 & arg3_1203X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1203X))) + -4))))>>2))))) {
            if ((arg2_1202X == (*((long *) (((char *) (-3 + arg3_1203X))))))) {
              len_1205X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1203X))) + -4))))>>8))))>>2);
              if ((index_1204X < 0)) {
                goto L32185;}
              else {
                if ((index_1204X < len_1205X)) {
                  v_1206X = *((unsigned char *) ((Scode_pointerS) + 1));
                  if ((0 == v_1206X)) {
                    goto L32175;}
                  else {
                    if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                      goto L32175;}
                    else {
                      merged_arg0K0 = arg3_1203X;
                      merged_arg0K1 = (((index_1204X)<<2));
                      proposal_d_read_return_tag = 2;
                      goto proposal_d_read;
                     proposal_d_read_return_2:
                      v_1207X = proposal_d_read0_return_value;
                      arg0K0 = v_1207X;
                      goto L32184;}}}
                else {
                  goto L32185;}}}
            else {
              goto L32205;}}
          else {
            goto L32205;}}
        else {
          goto L32205;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1203X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1202X);
        x_1208X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1208X);
        arg0K0 = 3;
        goto L25342;}}
      break;
    case 178 : {
      arg2_1209X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg3_1210X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg4_1211X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      if ((0 == (3 & arg2_1209X))) {
        index_1212X = ((arg2_1209X)>>2);
        value_1213X = SvalS;
        if ((3 == (3 & arg4_1211X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1211X))) + -4))))>>2))))) {
            if ((arg3_1210X == (*((long *) (((char *) (-3 + arg4_1211X))))))) {
              if ((3 == (3 & arg4_1211X))) {
                if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1211X))) + -4)))))) {
                  len_1214X = (((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1211X))) + -4))))>>8))))>>2);
                  if ((index_1212X < 0)) {
                    goto L32443;}
                  else {
                    if ((index_1212X < len_1214X)) {
                      v_1215X = *((unsigned char *) ((Scode_pointerS) + 1));
                      if ((0 == v_1215X)) {
                        goto L32433;}
                      else {
                        if ((1 == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
                          goto L32433;}
                        else {
                          merged_arg0K0 = arg4_1211X;
                          merged_arg0K1 = (((index_1212X)<<2));
                          merged_arg0K2 = value_1213X;
                          proposal_d_write_return_tag = 2;
                          goto proposal_d_write;
                         proposal_d_write_return_2:
                          goto L32442;}}}
                    else {
                      goto L32443;}}}
                else {
                  goto L32465;}}
              else {
                goto L32465;}}
            else {
              goto L32465;}}
          else {
            goto L32465;}}
        else {
          goto L32465;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg4_1211X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1210X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1209X);
        x_1216X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1216X);
        arg0K0 = 4;
        goto L25342;}}
      break;
    case 179 : {
      v_1217X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1217X)) {
        arg0K0 = (SvalS);
        goto L32722;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 0;
        goto get_current_port;
       get_current_port_return_0:
        v_1218X = get_current_port0_return_value;
        arg0K0 = v_1218X;
        goto L32722;}}
      break;
    case 180 : {
      v_1219X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1219X)) {
        arg0K0 = (SvalS);
        goto L32924;}
      else {
        merged_arg0K0 = 0;
        get_current_port_return_tag = 1;
        goto get_current_port;
       get_current_port_return_1:
        v_1220X = get_current_port0_return_value;
        arg0K0 = v_1220X;
        goto L32924;}}
      break;
    case 181 : {
      v_1221X = *((unsigned char *) ((Scode_pointerS) + 1));
      if ((0 == v_1221X)) {
        v_1222X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1222X;
        arg0K1 = (SvalS);
        goto L33119;}
      else {
        merged_arg0K0 = 4;
        get_current_port_return_tag = 2;
        goto get_current_port;
       get_current_port_return_2:
        v_1223X = get_current_port0_return_value;
        arg0K0 = (SvalS);
        arg0K1 = v_1223X;
        goto L33119;}}
      break;
    case 182 : {s48_make_availableAgc(520);
      if ((0 == (3 & (SvalS)))) {
        merged_arg0K0 = ((((SvalS))>>2));
        merged_arg0K1 = 0;
        get_error_string_return_tag = 2;
        goto get_error_string;
       get_error_string_return_2:
        val_1224X = get_error_string0_return_value;
        SvalS = val_1224X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {push_exception_setupB(5, 1);
        x_1225X = SvalS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1225X);
        arg0K0 = 1;
        goto L25342;}}
      break;
    case 183 : {
      x_1226X = SvalS;
      out_1227X = stderr;
      arg0K0 = x_1226X;
      goto L42547;}
      break;
  }}
 L24447: {
  i_1228X = arg0K0;
  m_1229X = arg0K1;
  if ((0 == (n_764X & m_1229X))) {
    arg0K0 = (1 + i_1228X);
    arg0K1 = (((m_1229X)<<1));
    goto L24447;}
  else {
    Spending_interruptsS = ((Spending_interruptsS) & (~ m_1229X));
    handlers_1230X = SHARED_REF((Sinterrupt_handlersS));
    if ((i_1228X == 0)) {
      x_1231X = Sinterrupted_templateS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1231X);
      Sinterrupted_templateS = 1;
      n_1232X = Senabled_interruptsS;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((n_1232X)<<2)));
      arg0K0 = 2;
      goto L24404;}
    else {
      if ((i_1228X == 2)) {
        x_1233X = Sfinalize_theseS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (x_1233X);
        Sfinalize_theseS = 25;
        n_1234X = Senabled_interruptsS;
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((n_1234X)<<2)));
        arg0K0 = 2;
        goto L24404;}
      else {
        if ((i_1228X == 3)) {
          channel_1235X = Spending_channels_headS;
          next_1236X = *((long *) ((((char *) (-3 + channel_1235X))) + 16));
          Spending_channels_headS = next_1236X;
          addr_1237X = (((char *) (-3 + channel_1235X))) + 16;S48_WRITE_BARRIER(channel_1235X, addr_1237X, 1);
          *((long *) addr_1237X) = (long) (1);
          if ((1 == next_1236X)) {
            Spending_channels_tailS = 1;
            arg0K0 = channel_1235X;
            goto L12347;}
          else {
            arg0K0 = channel_1235X;
            goto L12347;}}
        else {
          if ((i_1228X == 4)) {
            v_1238X = (Sos_signal_ring_startS) == (Sos_signal_ring_endS);
            if (v_1238X) {
              ps_error("This cannot happen: OS signal ring empty", 0);
              goto L12531;}
            else {
              goto L12531;}}
          else {
            n_1239X = Senabled_interruptsS;
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) ((((n_1239X)<<2)));
            arg0K0 = 1;
            goto L24404;}}}}}}
 L50016: {
  tag_1240X = arg0K0;
  if ((tag_1240X == 0)) {
    arg0K0 = (s48_Snative_protocolS);
    arg0K1 = 25;
    arg0K2 = 0;
    goto L24800;}
  else {
    if ((tag_1240X == 1)) {
      stack_arg_count_1241X = s48_Snative_protocolS;
      obj_1242X = SvalS;
      if ((3 == (3 & obj_1242X))) {
        if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1242X))) + -4))))>>2))))) {
          arg0K0 = stack_arg_count_1241X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L50802;}
        else {
          arg0K0 = 3;
          arg0K1 = stack_arg_count_1241X;
          arg0K2 = 25;
          arg0K3 = 0;
          goto L25062;}}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1241X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L25062;}}
    else {
      if ((tag_1240X == 2)) {
        template_1243X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        return_address_1244X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        pending_interruptP_return_tag = 4;
        goto pending_interruptP;
       pending_interruptP_return_4:
        v_1245X = pending_interruptP0_return_value;
        if (v_1245X) {
          x_1246X = SvalS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1246X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (template_1243X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (return_address_1244X);
          x_1247X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (x_1247X);
          x_1248X = Scurrent_threadS;
          addr_1249X = (((char *) (-3 + x_1248X))) + 12;S48_WRITE_BARRIER(x_1248X, addr_1249X, 1);
          *((long *) addr_1249X) = (long) (1);
          n_1250X = Senabled_interruptsS;
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((n_1250X)<<2)));
          code_1251X = Snative_poll_return_codeS;
          v_1252X = ((((ScontS) - (SstackS)))>>2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((4 + (((v_1252X)<<2))));
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) ((((long) ((((char *) (-3 + code_1251X))) + 13))));
          ScontS = (SstackS);
          goto L24394;}
        else {
          v_1253X = s48_jump_to_native_address(return_address_1244X, template_1243X);
          arg0K0 = v_1253X;
          goto L50016;}}
      else {
        if ((tag_1240X == 3)) {
          arg0K0 = (s48_Snative_protocolS);
          arg0K1 = 25;
          arg0K2 = 0;
          goto L24800;}
        else {
          if ((tag_1240X == 4)) {
            arg1K0 = (Scode_pointerS);
            goto L26704;}
          else {
            if ((tag_1240X == 5)) {
              maybe_cont_1254X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              stack_nargs_1255X = s48_Snative_protocolS;
              list_args_1256X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              merged_arg0K0 = list_args_1256X;
              okay_argument_list_return_tag = 1;
              goto okay_argument_list;
             okay_argument_list_return_1:
              okayP_1257X = okay_argument_list0_return_value;
              length_1258X = okay_argument_list1_return_value;
              if (okayP_1257X) {
                if ((0 == maybe_cont_1254X)) {
                  merged_arg0K0 = stack_nargs_1255X;
                  move_args_above_contB_return_tag = 5;
                  goto move_args_above_contB;
                 move_args_above_contB_return_5:
                  arg0K0 = stack_nargs_1255X;
                  arg0K1 = list_args_1256X;
                  arg0K2 = length_1258X;
                  goto L49753;}
                else {
                  ScontS = ((SstackS) + (((stack_nargs_1255X)<<2)));
                  *((long *) (ScontS)) = (long) ((((long) (((char *) maybe_cont_1254X)))));
                  arg0K0 = stack_nargs_1255X;
                  arg0K1 = list_args_1256X;
                  arg0K2 = length_1258X;
                  goto L49753;}}
              else {
                merged_arg0K0 = list_args_1256X;
                merged_arg0K1 = stack_nargs_1255X;
                pop_args_GlistSAgc_return_tag = 2;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_2:
                args_1259X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
                x_1260X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1260X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1259X);
                arg0K0 = 2;
                goto L25342;}}
            else {
              if ((tag_1240X == 6)) {push_exception_setupB(15, 1);
                x_1261X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1261X);
                arg0K0 = 1;
                goto L25342;}
              else {
                ps_error("unexpected native return value", 1, tag_1240X);
                arg0K0 = v_1262X;
                goto L54872;}}}}}}}}
 L27156: {
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L9001: {
  new_env_1263X = arg0K0;
  i_1264X = arg0K1;
  offset_1265X = arg0K2;
  total_count_1266X = arg0K3;
  arg0K0 = (*((unsigned char *) ((Scode_pointerS) + (1 + offset_1265X))));
  arg0K1 = i_1264X;
  arg0K2 = (1 + offset_1265X);
  goto L9007;}
 L19260: {
  count_1267X = arg0K0;
  i_1268X = arg0K1;
  offset_1269X = arg0K2;
  if ((0 == count_1267X)) {
    arg0K0 = new_env_794X;
    arg0K1 = i_1268X;
    arg0K2 = offset_1269X;
    arg0K3 = total_count_790X;
    goto L9001;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_795X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1269X)))))<<2)))));
    merged_arg0K1 = new_env_794X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 0;
    goto make_closure;
   make_closure_return_0:
    value_1270X = make_closure0_return_value;
    addr_1271X = (((char *) (-3 + new_env_794X))) + (((i_1268X)<<2));S48_WRITE_BARRIER(new_env_794X, addr_1271X, value_1270X);
    *((long *) addr_1271X) = (long) (value_1270X);
    arg0K0 = (-1 + count_1267X);
    arg0K1 = (1 + i_1268X);
    arg0K2 = (1 + offset_1269X);
    goto L19260;}}
 L11524: {
  new_env_1272X = arg0K0;
  i_1273X = arg0K1;
  offset_1274X = arg0K2;
  total_count_1275X = arg0K3;
  arg0K0 = (((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1274X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1274X)))));
  arg0K1 = i_1273X;
  arg0K2 = (2 + offset_1274X);
  goto L11530;}
 L19321: {
  count_1276X = arg0K0;
  i_1277X = arg0K1;
  offset_1278X = arg0K2;
  if ((0 == count_1276X)) {
    arg0K0 = new_env_800X;
    arg0K1 = i_1277X;
    arg0K2 = offset_1278X;
    arg0K3 = total_count_796X;
    goto L11524;}
  else {
    merged_arg0K0 = (*((long *) ((((char *) (-3 + template_801X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1278X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1278X))))))<<2)))));
    merged_arg0K1 = new_env_800X;
    merged_arg0K2 = 0;
    make_closure_return_tag = 1;
    goto make_closure;
   make_closure_return_1:
    value_1279X = make_closure0_return_value;
    addr_1280X = (((char *) (-3 + new_env_800X))) + (((i_1277X)<<2));S48_WRITE_BARRIER(new_env_800X, addr_1280X, value_1279X);
    *((long *) addr_1280X) = (long) (value_1279X);
    arg0K0 = (-1 + count_1276X);
    arg0K1 = (1 + i_1277X);
    arg0K2 = (2 + offset_1278X);
    goto L19321;}}
 L29337: {
  i_1281X = arg0K0;
  if ((0 == i_1281X)) {
    SvalS = closure_812X;
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    value_1282X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + closure_812X))) + (((i_1281X)<<2)))) = (long) (value_1282X);
    arg0K0 = (-1 + i_1281X);
    goto L29337;}}
 L51567: {
  n_1283X = arg0K0;
  if ((0 == n_1283X)) {
    Scode_pointerS = ((Scode_pointerS) + 3);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    arg0K0 = (-1 + n_1283X);
    goto L51567;}}
 L28671: {
  move_1284X = arg0K0;
  if ((move_1284X == n_moves_820X)) {
    value_1285X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1285X;
    Scode_pointerS = ((Scode_pointerS) + (2 + (((n_moves_820X)<<1))));
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    index_1286X = 1 + (((move_1284X)<<1));
    *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (2 + index_1286X)))))<<2)))) = (long) ((*((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1286X)))))<<2))))));
    arg0K0 = (1 + move_1284X);
    goto L28671;}}
 L28588: {
  move_1287X = arg0K0;
  if ((move_1287X == n_moves_822X)) {
    value_1288X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    SvalS = value_1288X;
    Scode_pointerS = ((Scode_pointerS) + (3 + (((n_moves_822X)<<2))));
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    index_1289X = 2 + (((move_1287X)<<2));
    value_1290X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1289X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1289X))))))<<2))));
    index_1291X = 2 + index_1289X;
    *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1291X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1291X))))))<<2)))) = (long) (value_1290X);
    arg0K0 = (1 + move_1287X);
    goto L28588;}}
 L51636: {
  value_1292X = arg0K0;
  SvalS = value_1292X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L50729: {
  stack_arg_count_1293X = arg0K0;
  obj_1294X = SvalS;
  if ((3 == (3 & obj_1294X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1294X))) + -4))))>>2))))) {
      template_1295X = *((long *) (((char *) (-3 + (SvalS)))));
      code_1296X = *((long *) (((char *) (-3 + template_1295X))));
      protocol_1297X = *((unsigned char *) ((((char *) (-3 + code_1296X))) + 1));
      if ((protocol_1297X == stack_arg_count_1293X)) {
        arg0K0 = code_1296X;
        arg0K1 = 2;
        arg0K2 = 3;
        arg0K3 = template_1295X;
        goto L24188;}
      else {
        if (((127 & protocol_1297X) == stack_arg_count_1293X)) {
          if (((SstackS) < (s48_Sstack_limitS))) {
            interruptP_1298X = (s48_Sstack_limitS) == (((char *) -1));
            s48_Sstack_limitS = (Sreal_stack_limitS);
            if (((SstackS) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
              if (((SstackS) < (Sreal_stack_limitS))) {
                ps_error("VM's stack is too small (how can this happen?)", 0);
                if (interruptP_1298X) {
                  goto L50215;}
                else {
                  goto L50222;}}
              else {
                if (interruptP_1298X) {
                  goto L50215;}
                else {
                  goto L50222;}}}
            else {
              if (interruptP_1298X) {
                goto L50215;}
              else {
                goto L50222;}}}
          else {
            goto L50222;}}
        else {
          arg0K0 = stack_arg_count_1293X;
          arg0K1 = 25;
          arg0K2 = 0;
          arg0K3 = -1;
          goto L50802;}}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1293X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L25062;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_1293X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L25062;}}
 L25175: {
  obj_1299X = SvalS;
  if ((3 == (3 & obj_1299X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1299X))) + -4))))>>2))))) {
      arg0K0 = stack_arg_count_826X;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L50802;}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_826X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L25062;}}
  else {
    arg0K0 = 3;
    arg0K1 = stack_arg_count_826X;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L25062;}}
 L51662: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L49753: {
  stack_arg_count_1300X = arg0K0;
  list_args_1301X = arg0K1;
  list_arg_count_1302X = arg0K2;
  if ((0 == list_arg_count_1302X)) {
    obj_1303X = SvalS;
    if ((3 == (3 & obj_1303X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1303X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1300X;
        arg0K1 = 25;
        arg0K2 = 0;
        arg0K3 = -1;
        goto L50802;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1300X;
        arg0K2 = 25;
        arg0K3 = 0;
        goto L25062;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1300X;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L25062;}}
  else {
    obj_1304X = SvalS;
    if ((3 == (3 & obj_1304X))) {
      if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1304X))) + -4))))>>2))))) {
        arg0K0 = stack_arg_count_1300X;
        arg0K1 = list_args_1301X;
        arg0K2 = list_arg_count_1302X;
        arg0K3 = -1;
        goto L50802;}
      else {
        arg0K0 = 3;
        arg0K1 = stack_arg_count_1300X;
        arg0K2 = list_args_1301X;
        arg0K3 = list_arg_count_1302X;
        goto L25062;}}
    else {
      arg0K0 = 3;
      arg0K1 = stack_arg_count_1300X;
      arg0K2 = list_args_1301X;
      arg0K3 = list_arg_count_1302X;
      goto L25062;}}}
 L17515: {
  list_args_1305X = arg0K0;
  stack_nargs_1306X = arg0K1;
  merged_arg0K0 = list_args_1305X;
  okay_argument_list_return_tag = 2;
  goto okay_argument_list;
 okay_argument_list_return_2:
  okayP_1307X = okay_argument_list0_return_value;
  list_arg_count_1308X = okay_argument_list1_return_value;
  if (okayP_1307X) {
    arg0K0 = stack_nargs_1306X;
    arg0K1 = list_args_1305X;
    arg0K2 = list_arg_count_1308X;
    goto L49753;}
  else {
    merged_arg0K0 = list_args_1305X;
    merged_arg0K1 = stack_nargs_1306X;
    pop_args_GlistSAgc_return_tag = 3;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_3:
    args_1309X = pop_args_GlistSAgc0_return_value;push_exception_setupB(5, 0);
    x_1310X = SvalS;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1310X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1309X);
    arg0K0 = 2;
    goto L25342;}}
 L17560: {
  list_1311X = arg0K0;
  follower_1312X = arg0K1;
  if ((25 == list_1311X)) {
    list_args_1313X = *((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + follower_1312X))) + 4)))))));
    addr_1314X = (((char *) (-3 + follower_1312X))) + 4;S48_WRITE_BARRIER(follower_1312X, addr_1314X, list_args_1313X);
    *((long *) addr_1314X) = (long) (list_args_1313X);
    arg0K0 = rest_list_841X;
    arg0K1 = (-1 + stack_nargs_840X);
    goto L17515;}
  else {
    arg0K0 = (*((long *) ((((char *) (-3 + list_1311X))) + 4)));
    arg0K1 = (*((long *) ((((char *) (-3 + follower_1312X))) + 4)));
    goto L17560;}}
 L25133: {
  obj_1315X = SvalS;
  if ((3 == (3 & obj_1315X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1315X))) + -4))))>>2))))) {
      arg0K0 = 0;
      arg0K1 = 25;
      arg0K2 = 0;
      arg0K3 = -1;
      goto L50802;}
    else {
      arg0K0 = 3;
      arg0K1 = 0;
      arg0K2 = 25;
      arg0K3 = 0;
      goto L25062;}}
  else {
    arg0K0 = 3;
    arg0K1 = 0;
    arg0K2 = 25;
    arg0K3 = 0;
    goto L25062;}}
 L25142: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = cont_843X;
  ScontS = (Sbottom_of_stackS);
  goto L25133;}
 L50340: {
  code_pointer_1316X = ((char *) (*((long *) (ScontS))));
  protocol_1317X = *((unsigned char *) (code_pointer_1316X + 1));
  if ((1 == protocol_1317X)) {
    goto L50357;}
  else {
    if ((66 == protocol_1317X)) {
      goto L50357;}
    else {
      if ((129 == protocol_1317X)) {
        arg0K0 = 2;
        goto L50142;}
      else {
        if ((194 == protocol_1317X)) {
          arg0K0 = 2;
          goto L50142;}
        else {
          if ((71 == protocol_1317X)) {
            cont_1318X = Sheap_continuationS;
            if ((3 == (3 & cont_1318X))) {
              if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1318X))) + -4))))>>2))))) {
                merged_arg0K0 = cont_1318X;
                merged_arg0K1 = 0;
                copy_continuation_from_heapB_return_tag = 1;
                goto copy_continuation_from_heapB;
               copy_continuation_from_heapB_return_1:
                goto L50340;}
              else {
                arg0K0 = cont_1318X;
                goto L25688;}}
            else {
              arg0K0 = cont_1318X;
              goto L25688;}}
          else {
            if ((70 == protocol_1317X)) {
              offset_1319X = ((((*((unsigned char *) (code_pointer_1316X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1316X + 3)));
              proc_1320X = *((long *) ((ScontS) + 4));
              if ((0 == offset_1319X)) {
                cont_1321X = ScontS;
                pointer_1322X = (((char *) (*((long *) cont_1321X)))) + -2;
                size_1323X = ((((*((unsigned char *) pointer_1322X)))<<8)) + (*((unsigned char *) (pointer_1322X + 1)));
                if ((65535 == size_1323X)) {
                  arg0K0 = ((((*((long *) (cont_1321X + 4))))>>2));
                  goto L50501;}
                else {
                  arg0K0 = size_1323X;
                  goto L50501;}}
              else {
                ScontS = ((ScontS) + 4);
                *((long *) (ScontS)) = (long) ((((long) (code_pointer_1316X + offset_1319X))));
                SstackS = (ScontS);
                goto L50406;}}
            else {
              if ((65 == protocol_1317X)) {
                wants_stack_args_1324X = ((((*((unsigned char *) (code_pointer_1316X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1316X + 3)));
                if ((0 == wants_stack_args_1324X)) {
                  pop_continuationB_return_tag = 0;
                  goto pop_continuationB;
                 pop_continuationB_return_0:s48_make_availableAgc(12);
                  a_1325X = SvalS;
                  addr_1326X = s48_allocate_small(12);
                  *((long *) addr_1326X) = (long) (2050);
                  x_1327X = 3 + (((long) (addr_1326X + 4)));
                  *((long *) (((char *) (-3 + x_1327X)))) = (long) (a_1325X);
                  *((long *) ((((char *) (-3 + x_1327X))) + 4)) = (long) (25);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (x_1327X);
                  Scode_pointerS = ((Scode_pointerS) + 4);
                  arg1K0 = (Scode_pointerS);
                  goto L26704;}
                else {
                  if ((1 == wants_stack_args_1324X)) {
                    pop_continuationB_return_tag = 1;
                    goto pop_continuationB;
                   pop_continuationB_return_1:
                    x_1328X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1328X);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (25);
                    Scode_pointerS = ((Scode_pointerS) + 4);
                    arg1K0 = (Scode_pointerS);
                    goto L26704;}
                  else {
                    x_1329X = SvalS;
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (x_1329X);
                    merged_arg0K0 = 25;
                    merged_arg0K1 = 1;
                    pop_args_GlistSAgc_return_tag = 4;
                    goto pop_args_GlistSAgc;
                   pop_args_GlistSAgc_return_4:
                    args_1330X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (1);
                    SstackS = ((SstackS) + -4);
                    *((long *) (SstackS)) = (long) (args_1330X);
                    arg0K0 = 2;
                    goto L25342;}}}
              else {
                x_1331X = SvalS;
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (x_1331X);
                merged_arg0K0 = 25;
                merged_arg0K1 = 1;
                pop_args_GlistSAgc_return_tag = 5;
                goto pop_args_GlistSAgc;
               pop_args_GlistSAgc_return_5:
                args_1332X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (args_1332X);
                arg0K0 = 2;
                goto L25342;}}}}}}}}
 L24800: {
  stack_nargs_1333X = arg0K0;
  list_args_1334X = arg0K1;
  list_arg_count_1335X = arg0K2;
  code_pointer_1336X = ((char *) (*((long *) (ScontS))));
  protocol_1337X = *((unsigned char *) (code_pointer_1336X + 1));
  if ((1 == protocol_1337X)) {
    if ((1 == (stack_nargs_1333X + list_arg_count_1335X))) {
      if ((1 == stack_nargs_1333X)) {
        v_1338X = *((long *) (SstackS));
        SstackS = ((SstackS) + 4);
        arg0K0 = v_1338X;
        goto L24889;}
      else {
        arg0K0 = (*((long *) (((char *) (-3 + list_args_1334X)))));
        goto L24889;}}
    else {
      arg0K0 = stack_nargs_1333X;
      arg0K1 = list_args_1334X;
      goto L25771;}}
  else {
    if ((66 == protocol_1337X)) {
      pop_continuationB_return_tag = 2;
      goto pop_continuationB;
     pop_continuationB_return_2:
      arg0K0 = 1;
      goto L27128;}
    else {
      if ((127 < protocol_1337X)) {
        if ((129 == protocol_1337X)) {
          if ((1 == (stack_nargs_1333X + list_arg_count_1335X))) {
            if ((1 == stack_nargs_1333X)) {
              v_1339X = *((long *) (SstackS));
              SstackS = ((SstackS) + 4);
              arg0K0 = v_1339X;
              goto L50686;}
            else {
              arg0K0 = (*((long *) (((char *) (-3 + list_args_1334X)))));
              goto L50686;}}
          else {
            merged_arg0K0 = list_args_1334X;
            merged_arg0K1 = stack_nargs_1333X;
            pop_args_GlistSAgc_return_tag = 6;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_6:
            args_1340X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1340X);
            arg0K0 = 2;
            goto L25342;}}
        else {
          if ((194 == protocol_1337X)) {
            arg0K0 = 2;
            goto L50142;}
          else {
            ps_error("unknown native return protocol", 1, protocol_1337X);
            merged_arg0K0 = list_args_1334X;
            merged_arg0K1 = stack_nargs_1333X;
            pop_args_GlistSAgc_return_tag = 7;
            goto pop_args_GlistSAgc;
           pop_args_GlistSAgc_return_7:
            args_1341X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (args_1341X);
            arg0K0 = 2;
            goto L25342;}}}
      else {
        if ((71 == protocol_1337X)) {
          cont_1342X = Sheap_continuationS;
          if ((3 == (3 & cont_1342X))) {
            if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1342X))) + -4))))>>2))))) {
              merged_arg0K0 = cont_1342X;
              merged_arg0K1 = stack_nargs_1333X;
              copy_continuation_from_heapB_return_tag = 2;
              goto copy_continuation_from_heapB;
             copy_continuation_from_heapB_return_2:
              arg0K0 = stack_nargs_1333X;
              arg0K1 = list_args_1334X;
              arg0K2 = list_arg_count_1335X;
              goto L24800;}
            else {
              goto L24835;}}
          else {
            goto L24835;}}
        else {
          if ((70 == protocol_1337X)) {
            SvalS = (*((long *) ((ScontS) + 4)));
            offset_1343X = ((((*((unsigned char *) (code_pointer_1336X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1336X + 3)));
            if ((0 == offset_1343X)) {
              cont_1344X = ScontS;
              pointer_1345X = (((char *) (*((long *) cont_1344X)))) + -2;
              size_1346X = ((((*((unsigned char *) pointer_1345X)))<<8)) + (*((unsigned char *) (pointer_1345X + 1)));
              if ((65535 == size_1346X)) {
                arg0K0 = ((((*((long *) (cont_1344X + 4))))>>2));
                goto L24952;}
              else {
                arg0K0 = size_1346X;
                goto L24952;}}
            else {
              ScontS = ((ScontS) + 4);
              *((long *) (ScontS)) = (long) ((((long) (code_pointer_1336X + offset_1343X))));
              merged_arg0K0 = stack_nargs_1333X;
              move_args_above_contB_return_tag = 6;
              goto move_args_above_contB;
             move_args_above_contB_return_6:
              arg0K0 = stack_nargs_1333X;
              arg0K1 = list_args_1334X;
              arg0K2 = list_arg_count_1335X;
              goto L49753;}}
          else {
            if ((63 < protocol_1337X)) {
              if ((65 == protocol_1337X)) {
                count_1347X = ((((*((unsigned char *) (code_pointer_1336X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1336X + 3)));
                if (((stack_nargs_1333X + list_arg_count_1335X) < count_1347X)) {
                  merged_arg0K0 = list_args_1334X;
                  merged_arg0K1 = stack_nargs_1333X;
                  pop_args_GlistSAgc_return_tag = 8;
                  goto pop_args_GlistSAgc;
                 pop_args_GlistSAgc_return_8:
                  args_1348X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (1);
                  SstackS = ((SstackS) + -4);
                  *((long *) (SstackS)) = (long) (args_1348X);
                  arg0K0 = 2;
                  goto L25342;}
                else {
                  arg_top_1349X = SstackS;
                  pop_continuationB_return_tag = 3;
                  goto pop_continuationB;
                 pop_continuationB_return_3:
                  arg1K0 = ((SstackS) + -4);
                  arg1K1 = (arg_top_1349X + (-4 + (((stack_nargs_1333X)<<2))));
                  goto L28178;}}
              else {
                if ((64 == protocol_1337X)) {
                  arg0K0 = (((((*((unsigned char *) (code_pointer_1336X + 2))))<<8)) + (*((unsigned char *) (code_pointer_1336X + 3))));
                  arg0K1 = 3;
                  arg0K2 = stack_nargs_1333X;
                  arg0K3 = list_args_1334X;
                  arg0K4 = list_arg_count_1335X;
                  goto L28030;}
                else {
                  ps_error("unknown protocol", 1, protocol_1337X);
                  arg0K0 = stack_nargs_1333X;
                  arg0K1 = list_args_1334X;
                  goto L25771;}}}
            else {
              arg0K0 = protocol_1337X;
              arg0K1 = 1;
              arg0K2 = stack_nargs_1333X;
              arg0K3 = list_args_1334X;
              arg0K4 = list_arg_count_1335X;
              goto L28030;}}}}}}}
 L28322: {
  if ((nargs_850X == (*((unsigned char *) ((((char *) (-3 + code_849X))) + 1))))) {
    arg0K0 = code_849X;
    arg0K1 = 2;
    arg0K2 = 3;
    arg0K3 = template_848X;
    goto L24188;}
  else {
    v_1350X = *((unsigned char *) ((((char *) (-3 + code_849X))) + 1));
    if ((67 == v_1350X)) {
      if ((nargs_850X == (*((unsigned char *) ((((char *) (-3 + code_849X))) + (-3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_849X))) + -4))))>>8)))))))) {
        index_1351X = -2 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + code_849X))) + -4))))>>8));
        arg0K0 = code_849X;
        arg0K1 = 2;
        arg0K2 = template_848X;
        arg0K3 = (((((*((unsigned char *) ((((char *) (-3 + code_849X))) + index_1351X))))<<8)) + (*((unsigned char *) ((((char *) (-3 + code_849X))) + (1 + index_1351X)))));
        goto L27138;}
      else {
        goto L28344;}}
    else {
      goto L28344;}}}
 L27013: {
  arg0K0 = (2 + (((max_854X)<<1)));
  goto L27015;}
 L27015: {
  offset_1352X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + offset_1352X);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L27602: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L26911: {
  delta_1353X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1353X);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L27493: {
  delta_1354X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + delta_1354X);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L51707: {
  val_1355X = arg0K0;
  SvalS = val_1355X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L51719: {
  val_1356X = arg0K0;
  SvalS = val_1356X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L15427: {
  if ((3 == (3 & x_869X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + x_869X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L51719;}
    else {
      goto L15433;}}
  else {
    goto L15433;}}
 L41764: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41765: {
  if ((3 == (3 & n_870X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_870X))) + -4))))>>2))))) {
      goto L41778;}
    else {
      goto L41773;}}
  else {
    goto L41773;}}
 L41898: {
  n_1357X = arg0K0;
  if ((0 == (3 & n_1357X))) {
    goto L41931;}
  else {
    if ((3 == (3 & n_1357X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + n_1357X))) + -4))))>>2))))) {
        goto L41931;}
      else {
        goto L41914;}}
    else {
      goto L41914;}}}
 L34926: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L34927: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_871X);
  arg0K0 = 1;
  goto L25342;}
 L35052: {
  v_1358X = (char *) s48_long_to_bignum(x_876X);
  v_1359X = enter_bignum(v_1358X);
  arg0K0 = v_1359X;
  goto L34998;}
 L34998: {
  val_1360X = arg0K0;
  SvalS = val_1360X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35004: {
  if ((0 == (3 & y_875X))) {
    goto L35010;}
  else {
    if ((3 == (3 & y_875X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_875X))) + -4))))>>2))))) {
        goto L35010;}
      else {
        goto L35013;}}
    else {
      goto L35013;}}}
 L35013: {
  if ((3 == (3 & arg2_874X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_874X))) + -4))))>>2))))) {
      if ((3 == (3 & y_875X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_875X))) + -4))))>>2))))) {
          Stemp0S = arg2_874X;
          Stemp1S = y_875X;s48_make_availableAgc(12);
          value_1361X = Stemp0S;
          Stemp0S = 1;
          x_1362X = *((double *) (((char *) (-3 + value_1361X))));
          value_1363X = Stemp1S;
          Stemp1S = 1;
          y_1364X = *((double *) (((char *) (-3 + value_1363X))));
          addr_1365X = s48_allocate_small(12);
          *((long *) addr_1365X) = (long) (2122);
          Kdouble_1366X = 3 + (((long) (addr_1365X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1366X)))) = (double) ((x_1362X + y_1364X));
          SvalS = Kdouble_1366X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L35027;}}
      else {
        goto L35027;}}
    else {
      goto L35027;}}
  else {
    goto L35027;}}
 L9167: {
  a_1367X = arg0K0;
  if ((b_880X < 0)) {
    arg0K0 = (0 - b_880X);
    goto L9171;}
  else {
    arg0K0 = b_880X;
    goto L9171;}}
 L43661: {
  if ((0 == (3 & y_878X))) {
    goto L43667;}
  else {
    if ((3 == (3 & y_878X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_878X))) + -4))))>>2))))) {
        goto L43667;}
      else {
        goto L43670;}}
    else {
      goto L43670;}}}
 L43670: {
  if ((3 == (3 & arg2_877X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_877X))) + -4))))>>2))))) {
      if ((3 == (3 & y_878X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_878X))) + -4))))>>2))))) {
          Stemp0S = arg2_877X;
          Stemp1S = y_878X;s48_make_availableAgc(12);
          value_1368X = Stemp0S;
          Stemp0S = 1;
          x_1369X = *((double *) (((char *) (-3 + value_1368X))));
          value_1370X = Stemp1S;
          Stemp1S = 1;
          y_1371X = *((double *) (((char *) (-3 + value_1370X))));
          addr_1372X = s48_allocate_small(12);
          *((long *) addr_1372X) = (long) (2122);
          Kdouble_1373X = 3 + (((long) (addr_1372X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1373X)))) = (double) ((x_1369X * y_1371X));
          SvalS = Kdouble_1373X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L43684;}}
      else {
        goto L43684;}}
    else {
      goto L43684;}}
  else {
    goto L43684;}}
 L35341: {
  v_1374X = (char *) s48_long_to_bignum(x_883X);
  v_1375X = enter_bignum(v_1374X);
  arg0K0 = v_1375X;
  goto L35287;}
 L35287: {
  val_1376X = arg0K0;
  SvalS = val_1376X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35293: {
  if ((0 == (3 & y_882X))) {
    goto L35299;}
  else {
    if ((3 == (3 & y_882X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_882X))) + -4))))>>2))))) {
        goto L35299;}
      else {
        goto L35302;}}
    else {
      goto L35302;}}}
 L35302: {
  if ((3 == (3 & arg2_881X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_881X))) + -4))))>>2))))) {
      if ((3 == (3 & y_882X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_882X))) + -4))))>>2))))) {
          Stemp0S = arg2_881X;
          Stemp1S = y_882X;s48_make_availableAgc(12);
          value_1377X = Stemp0S;
          Stemp0S = 1;
          x_1378X = *((double *) (((char *) (-3 + value_1377X))));
          value_1379X = Stemp1S;
          Stemp1S = 1;
          y_1380X = *((double *) (((char *) (-3 + value_1379X))));
          addr_1381X = s48_allocate_small(12);
          *((long *) addr_1381X) = (long) (2122);
          Kdouble_1382X = 3 + (((long) (addr_1381X + 4)));
          *((double *) (((char *) (-3 + Kdouble_1382X)))) = (double) ((x_1378X - y_1380X));
          SvalS = Kdouble_1382X;
          Scode_pointerS = ((Scode_pointerS) + 1);
          arg1K0 = (Scode_pointerS);
          goto L26704;}
        else {
          goto L35316;}}
      else {
        goto L35316;}}
    else {
      goto L35316;}}
  else {
    goto L35316;}}
 L9425: {
  a_1383X = arg0K0;
  if ((b_887X < 0)) {
    arg0K0 = (0 - b_887X);
    goto L9429;}
  else {
    arg0K0 = b_887X;
    goto L9429;}}
 L43914: {
  if ((0 == (3 & y_885X))) {
    goto L43920;}
  else {
    if ((3 == (3 & y_885X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_885X))) + -4))))>>2))))) {
        goto L43920;}
      else {
        goto L43951;}}
    else {
      goto L43951;}}}
 L43951: {
  if ((3 == (3 & arg2_884X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_884X))) + -4))))>>2))))) {
      if ((3 == (3 & y_885X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_885X))) + -4))))>>2))))) {
          if ((0.0 == (*((double *) (((char *) (-3 + y_885X))))))) {
            arg0K0 = 1;
            goto L43964;}
          else {
            Stemp0S = arg2_884X;
            Stemp1S = y_885X;s48_make_availableAgc(12);
            value_1384X = Stemp0S;
            Stemp0S = 1;
            x_1385X = *((double *) (((char *) (-3 + value_1384X))));
            value_1386X = Stemp1S;
            Stemp1S = 1;
            value_1387X = x_1385X / (*((double *) (((char *) (-3 + value_1386X)))));
            addr_1388X = s48_allocate_small(12);
            *((long *) addr_1388X) = (long) (2122);
            Kdouble_1389X = 3 + (((long) (addr_1388X + 4)));
            *((double *) (((char *) (-3 + Kdouble_1389X)))) = (double) (value_1387X);
            arg0K0 = Kdouble_1389X;
            goto L43964;}}
        else {
          goto L43971;}}
      else {
        goto L43971;}}
    else {
      goto L43971;}}
  else {
    goto L43971;}}
 L35572: {
  val_1390X = arg0K0;
  SvalS = val_1390X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35578: {
  if ((0 == (3 & y_889X))) {
    goto L35584;}
  else {
    if ((3 == (3 & y_889X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_889X))) + -4))))>>2))))) {
        goto L35584;}
      else {
        goto L35589;}}
    else {
      goto L35589;}}}
 L35589: {
  if ((3 == (3 & arg2_888X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_888X))) + -4))))>>2))))) {
      if ((3 == (3 & y_889X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_889X))) + -4))))>>2))))) {
          b_1391X = (*((double *) (((char *) (-3 + arg2_888X))))) == (*((double *) (((char *) (-3 + y_889X)))));
          if (b_1391X) {
            arg0K0 = 5;
            goto L35604;}
          else {
            arg0K0 = 1;
            goto L35604;}}
        else {
          goto L35605;}}
      else {
        goto L35605;}}
    else {
      goto L35605;}}
  else {
    goto L35605;}}
 L35832: {
  val_1392X = arg0K0;
  SvalS = val_1392X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35838: {
  if ((0 == (3 & y_891X))) {
    goto L35844;}
  else {
    if ((3 == (3 & y_891X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_891X))) + -4))))>>2))))) {
        goto L35844;}
      else {
        goto L35849;}}
    else {
      goto L35849;}}}
 L35849: {
  if ((3 == (3 & arg2_890X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_890X))) + -4))))>>2))))) {
      if ((3 == (3 & y_891X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_891X))) + -4))))>>2))))) {
          b_1393X = (*((double *) (((char *) (-3 + arg2_890X))))) < (*((double *) (((char *) (-3 + y_891X)))));
          if (b_1393X) {
            arg0K0 = 5;
            goto L35864;}
          else {
            arg0K0 = 1;
            goto L35864;}}
        else {
          goto L35865;}}
      else {
        goto L35865;}}
    else {
      goto L35865;}}
  else {
    goto L35865;}}
 L36155: {
  val_1394X = arg0K0;
  SvalS = val_1394X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36161: {
  if ((0 == (3 & y_893X))) {
    goto L36167;}
  else {
    if ((3 == (3 & y_893X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_893X))) + -4))))>>2))))) {
        goto L36167;}
      else {
        goto L36172;}}
    else {
      goto L36172;}}}
 L36172: {
  if ((3 == (3 & arg2_892X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_892X))) + -4))))>>2))))) {
      if ((3 == (3 & y_893X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_893X))) + -4))))>>2))))) {
          b_1395X = (*((double *) (((char *) (-3 + y_893X))))) < (*((double *) (((char *) (-3 + arg2_892X)))));
          if (b_1395X) {
            arg0K0 = 5;
            goto L36187;}
          else {
            arg0K0 = 1;
            goto L36187;}}
        else {
          goto L36188;}}
      else {
        goto L36188;}}
    else {
      goto L36188;}}
  else {
    goto L36188;}}
 L36478: {
  val_1396X = arg0K0;
  SvalS = val_1396X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36484: {
  if ((0 == (3 & y_895X))) {
    goto L36490;}
  else {
    if ((3 == (3 & y_895X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_895X))) + -4))))>>2))))) {
        goto L36490;}
      else {
        goto L36495;}}
    else {
      goto L36495;}}}
 L36495: {
  if ((3 == (3 & arg2_894X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_894X))) + -4))))>>2))))) {
      if ((3 == (3 & y_895X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_895X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + y_895X))))) < (*((double *) (((char *) (-3 + arg2_894X))))))) {
            arg0K0 = 1;
            goto L36510;}
          else {
            arg0K0 = 5;
            goto L36510;}}
        else {
          goto L36511;}}
      else {
        goto L36511;}}
    else {
      goto L36511;}}
  else {
    goto L36511;}}
 L36772: {
  val_1397X = arg0K0;
  SvalS = val_1397X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36778: {
  if ((0 == (3 & y_897X))) {
    goto L36784;}
  else {
    if ((3 == (3 & y_897X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_897X))) + -4))))>>2))))) {
        goto L36784;}
      else {
        goto L36789;}}
    else {
      goto L36789;}}}
 L36789: {
  if ((3 == (3 & arg2_896X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + arg2_896X))) + -4))))>>2))))) {
      if ((3 == (3 & y_897X))) {
        if ((18 == (31 & ((((*((long *) ((((char *) (-3 + y_897X))) + -4))))>>2))))) {
          if (((*((double *) (((char *) (-3 + arg2_896X))))) < (*((double *) (((char *) (-3 + y_897X))))))) {
            arg0K0 = 1;
            goto L36804;}
          else {
            arg0K0 = 5;
            goto L36804;}}
        else {
          goto L36805;}}
      else {
        goto L36805;}}
    else {
      goto L36805;}}
  else {
    goto L36805;}}
 L10116: {
  a_1398X = arg0K0;
  if ((b_902X < 0)) {
    arg0K0 = (0 - b_902X);
    goto L10120;}
  else {
    arg0K0 = b_902X;
    goto L10120;}}
 L37078: {
  if ((0 == (3 & y_899X))) {
    goto L37084;}
  else {
    if ((3 == (3 & y_899X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_899X))) + -4))))>>2))))) {
        goto L37084;}
      else {
        goto L37087;}}
    else {
      goto L37087;}}}
 L37087: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_898X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_899X);
  arg0K0 = 2;
  goto L25342;}
 L37292: {
  a_1399X = arg0K0;
  n_1400X = ((y_904X)>>2);
  if ((n_1400X < 0)) {
    arg0K0 = (0 - n_1400X);
    goto L37294;}
  else {
    arg0K0 = n_1400X;
    goto L37294;}}
 L37254: {
  if ((0 == (3 & y_904X))) {
    goto L37260;}
  else {
    if ((3 == (3 & y_904X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_904X))) + -4))))>>2))))) {
        goto L37260;}
      else {
        goto L37263;}}
    else {
      goto L37263;}}}
 L37263: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_903X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_904X);
  arg0K0 = 2;
  goto L25342;}
 L37441: {
  SvalS = n_907X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37442: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_907X);
  arg0K0 = 1;
  goto L25342;}
 L37496: {
  SvalS = n_908X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37497: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_908X);
  arg0K0 = 1;
  goto L25342;}
 L37551: {
  SvalS = 4;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37554: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_909X);
  arg0K0 = 1;
  goto L25342;}
 L37611: {
  SvalS = n_910X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37612: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_910X);
  arg0K0 = 1;
  goto L25342;}
 L37666: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37669: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_911X);
  arg0K0 = 1;
  goto L25342;}
 L45236: {
  x_1401X = SvalS;
  if ((0 == (3 & x_1401X))) {
    if ((0 < x_1401X)) {
      goto L45265;}
    else {
      goto L45259;}}
  else {
    v_1402X = s48_bignum_test((((char *) (-3 + x_1401X))));
    if ((-1 == v_1402X)) {
      goto L45259;}
    else {
      goto L45265;}}}
 L45239: {
push_exception_setupB(5, 1);
  x_1403X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1403X);
  arg0K0 = 1;
  goto L25342;}
 L48155: {
  x_1404X = SvalS;
  if ((0 == (3 & x_1404X))) {
    n_1405X = ((x_1404X)>>2);
    if ((n_1405X < 0)) {
      arg0K0 = (0 - n_1405X);
      goto L44246;}
    else {
      arg0K0 = n_1405X;
      goto L44246;}}
  else {
    if ((0 == (3 & x_1404X))) {
      arg0K0 = 1;
      arg0K1 = 3;
      goto L20516;}
    else {
      arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_1404X))) + -4))))>>8))))>>2)));
      arg0K1 = 0;
      goto L20516;}}}
 L48158: {
push_exception_setupB(5, 1);
  x_1406X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1406X);
  arg0K0 = 1;
  goto L25342;}
 L37812: {
  val_1407X = integer_bitwise_not(x_929X);
  SvalS = val_1407X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37815: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_929X);
  arg0K0 = 1;
  goto L25342;}
 L37903: {
  x_1408X = arg0K0;
  arg0K0 = x_1408X;
  arg0K1 = 0;
  goto L37909;}
 L37886: {
  val_1409X = integer_bit_count(x_930X);
  SvalS = val_1409X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37889: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_930X);
  arg0K0 = 1;
  goto L25342;}
 L37988: {
  if ((0 == (3 & y_933X))) {
    goto L37994;}
  else {
    if ((3 == (3 & y_933X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_933X))) + -4))))>>2))))) {
        goto L37994;}
      else {
        goto L37997;}}
    else {
      goto L37997;}}}
 L37997: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_932X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_933X);
  arg0K0 = 2;
  goto L25342;}
 L38151: {
  if ((0 == (3 & y_935X))) {
    goto L38157;}
  else {
    if ((3 == (3 & y_935X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_935X))) + -4))))>>2))))) {
        goto L38157;}
      else {
        goto L38160;}}
    else {
      goto L38160;}}}
 L38160: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_934X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_935X);
  arg0K0 = 2;
  goto L25342;}
 L38314: {
  if ((0 == (3 & y_937X))) {
    goto L38320;}
  else {
    if ((3 == (3 & y_937X))) {
      if ((19 == (31 & ((((*((long *) ((((char *) (-3 + y_937X))) + -4))))>>2))))) {
        goto L38320;}
      else {
        goto L38323;}}
    else {
      goto L38323;}}}
 L38323: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_936X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_937X);
  arg0K0 = 2;
  goto L25342;}
 L34706: {
  val_1410X = arg0K0;
  SvalS = val_1410X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L34722: {
  val_1411X = arg0K0;
  SvalS = val_1411X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L34723: {
push_exception_setupB(6, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_938X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_939X);
  arg0K0 = 2;
  goto L25342;}
 L44296: {
  if ((0 == (3 & y_939X))) {
    if ((0 == (3 & arg2_938X))) {
      value_1412X = ((arg2_938X)>>2);
      count_1413X = ((y_939X)>>2);
      if ((count_1413X < 0)) {
        PS_SHIFT_RIGHT(value_1412X, (0 - count_1413X), x_1414X)
        x_1415X = x_1414X;s48_make_availableAgc(16);
        if ((536870911 < x_1415X)) {
          goto L44416;}
        else {
          if ((x_1415X < -536870912)) {
            goto L44416;}
          else {
            arg0K0 = (((x_1415X)<<2));
            goto L44411;}}}
      else {
        PS_SHIFT_LEFT(value_1412X, count_1413X, x_1416X)
        result_1417X = x_1416X;
        PS_SHIFT_RIGHT(result_1417X, count_1413X, x_1418X)
        if ((value_1412X == x_1418X)) {
          if ((value_1412X < 0)) {
            if ((result_1417X < 0)) {s48_make_availableAgc(16);
              if ((536870911 < result_1417X)) {
                goto L44438;}
              else {
                if ((result_1417X < -536870912)) {
                  goto L44438;}
                else {
                  arg0K0 = (((result_1417X)<<2));
                  goto L44433;}}}
            else {
              arg0K0 = arg2_938X;
              arg0K1 = y_939X;
              goto L44309;}}
          else {
            if ((result_1417X < 0)) {
              arg0K0 = arg2_938X;
              arg0K1 = y_939X;
              goto L44309;}
            else {s48_make_availableAgc(16);
              if ((536870911 < result_1417X)) {
                goto L44460;}
              else {
                if ((result_1417X < -536870912)) {
                  goto L44460;}
                else {
                  arg0K0 = (((result_1417X)<<2));
                  goto L44455;}}}}}
        else {
          arg0K0 = arg2_938X;
          arg0K1 = y_939X;
          goto L44309;}}}
    else {
      if ((3 == (3 & arg2_938X))) {
        if ((19 == (31 & ((((*((long *) ((((char *) (-3 + arg2_938X))) + -4))))>>2))))) {
          y_1419X = ((y_939X)>>2);
          merged_arg0K0 = arg2_938X;
          merged_arg0K1 = y_1419X;
          shift_space_return_tag = 0;
          goto shift_space;
         shift_space_return_0:
          needed_1420X = shift_space0_return_value;
          Stemp0S = arg2_938X;s48_make_availableAgc((((needed_1420X)<<2)));
          value_1421X = Stemp0S;
          Stemp0S = 1;
          if ((0 == (3 & value_1421X))) {
            v_1422X = (char *) s48_long_to_bignum((((value_1421X)>>2)));
            arg1K0 = v_1422X;
            goto L44491;}
          else {
            arg1K0 = (((char *) (-3 + value_1421X)));
            goto L44491;}}
        else {
          goto L44318;}}
      else {
        goto L44318;}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_938X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_939X);
    arg0K0 = 2;
    goto L25342;}}
 L51978: {
  val_1423X = arg0K0;
  SvalS = val_1423X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41565: {
  val_1424X = arg0K0;
  SvalS = val_1424X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41536: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_943X);
  x_1425X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1425X);
  arg0K0 = 2;
  goto L25342;}
 L41473: {
  val_1426X = arg0K0;
  SvalS = val_1426X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41444: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_945X);
  x_1427X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1427X);
  arg0K0 = 2;
  goto L25342;}
 L45545: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((x_948X)<<2)));
  arg0K0 = 1;
  goto L25342;}
 L52009: {
  val_1428X = arg0K0;
  SvalS = val_1428X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L52023: {
  value_1429X = arg0K0;
  SvalS = value_1429X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L29467: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_953X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_954X)<<2)));
  arg0K0 = 2;
  goto L25342;}
 L29572: {
  SvalS = new_959X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L29556: {
  i_1430X = arg0K0;
  if ((i_1430X < 0)) {
    goto L29572;}
  else {
    value_1431X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_959X))) + (((i_1430X)<<2)))) = (long) (value_1431X);
    arg0K0 = (-1 + i_1430X);
    goto L29556;}}
 L29690: {
  i_1432X = arg0K0;
  if ((i_1432X < 0)) {
    arg0K0 = stack_nargs_967X;
    arg0K1 = rest_list_968X;
    goto L29832;}
  else {
    value_1433X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    *((long *) ((((char *) (-3 + new_965X))) + (((i_1432X)<<2)))) = (long) (value_1433X);
    arg0K0 = (-1 + i_1432X);
    goto L29690;}}
 L29858: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_969X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_970X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_971X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L29975: {
  addr_1434X = (((char *) (-3 + arg2_972X))) + (((offset_975X)<<2));S48_WRITE_BARRIER(arg2_972X, addr_1434X, value_973X);
  *((long *) addr_1434X) = (long) (value_973X);
  goto L29984;}
 L29984: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L29985: {
push_exception_setupB(5, 4);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_972X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_974X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_975X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_973X);
  arg0K0 = 4;
  goto L25342;}
 L30202: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_979X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_980X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (init_978X);
  arg0K0 = 3;
  goto L25342;}
 L30219: {
  x_1435X = arg0K0;
  value_1436X = Stemp0S;
  Stemp0S = 1;
  if ((1 == x_1435X)) {push_exception_setupB(8, 2);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((type_979X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_980X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (value_1436X);
    arg0K0 = 3;
    goto L25342;}
  else {
    arg0K0 = (-1 + len_980X);
    goto L30245;}}
 L30492: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_983X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_985X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_984X);
  arg0K0 = 3;
  goto L25342;}
 L30482: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg2_983X))) + (-4 & index_984X))));
  goto L30491;}
 L30491: {
  value_1437X = arg0K0;
  SvalS = value_1437X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L30447: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_983X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_985X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (index_984X);
  arg0K0 = 3;
  goto L25342;}
 L30779: {
push_exception_setupB(7, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_991X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_993X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_990X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_992X);
  arg0K0 = 4;
  goto L25342;}
 L30769: {
  addr_1438X = (((char *) (-3 + arg3_991X))) + (-4 & arg2_990X);S48_WRITE_BARRIER(arg3_991X, addr_1438X, value_992X);
  *((long *) addr_1438X) = (long) (value_992X);
  goto L30778;}
 L30778: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L30732: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_991X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_993X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_990X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_992X);
  arg0K0 = 4;
  goto L25342;}
 L52066: {
  new_1439X = arg0K0;
  if ((1 == new_1439X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (72);
    arg0K0 = 1;
    goto L25342;}
  else {
    SvalS = new_1439X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L38581: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_999X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((init_1000X)<<2)));
  arg0K0 = 2;
  goto L25342;}
 L38594: {
  vector_1440X = arg0K0;
  if ((1 == vector_1440X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_999X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((init_1000X)<<2)));
    arg0K0 = 2;
    goto L25342;}
  else {
    arg0K0 = (-1 + len_999X);
    goto L38616;}}
 L49373: {
push_exception_setupB(5, 1);
  x_1441X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1441X);
  arg0K0 = 1;
  goto L25342;}
 L45682: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1004X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1005X)<<2)));
  arg0K0 = 2;
  goto L25342;}
 L48808: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1004X);
  x_1442X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1442X);
  arg0K0 = 2;
  goto L25342;}
 L42883: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1008X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1009X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1010X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L42862: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1008X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1009X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((Kchar_1010X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L47475: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1008X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1007X);
  x_1443X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1443X);
  arg0K0 = 3;
  goto L25342;}
 L38761: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((len_1013X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + ((((((unsigned char) init_1014X)))<<8))));
  arg0K0 = 2;
  goto L25342;}
 L38774: {
  vector_1444X = arg0K0;
  if ((1 == vector_1444X)) {push_exception_setupB(8, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((len_1013X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((9 + ((((((unsigned char) init_1014X)))<<8))));
    arg0K0 = 2;
    goto L25342;}
  else {
    *((unsigned char *) ((((char *) (-3 + vector_1444X))) + len_1013X)) = (unsigned char) (0);
    arg0K0 = (-1 + len_1013X);
    goto L38796;}}
 L45763: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1012X);
  x_1445X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1445X);
  arg0K0 = 2;
  goto L25342;}
 L49423: {
push_exception_setupB(5, 1);
  x_1446X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1446X);
  arg0K0 = 1;
  goto L25342;}
 L45828: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1018X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1019X)<<2)));
  arg0K0 = 2;
  goto L25342;}
 L48906: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1018X);
  x_1447X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1447X);
  arg0K0 = 2;
  goto L25342;}
 L43038: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1022X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1023X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + ((((((unsigned char) Kchar_1024X)))<<8))));
  arg0K0 = 3;
  goto L25342;}
 L43017: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1022X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1023X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((9 + ((((((unsigned char) Kchar_1024X)))<<8))));
  arg0K0 = 3;
  goto L25342;}
 L47605: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1022X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1021X);
  x_1448X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1448X);
  arg0K0 = 3;
  goto L25342;}
 L23067: {
  i_1449X = arg0K0;
  h_1450X = arg0K1;
  if ((i_1449X < n_1029X)) {
    arg0K0 = (1 + i_1449X);
    arg0K1 = (h_1450X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + string_1028X))) + i_1449X))))))));
    goto L23067;}
  else {
    index_1451X = 1023 & h_1450X;
    link_1452X = *((long *) ((((char *) (-3 + table_1027X))) + (((index_1451X)<<2))));
    if ((0 == (3 & link_1452X))) {
      arg0K0 = (3 + (-4 & link_1452X));
      goto L23023;}
    else {
      arg0K0 = link_1452X;
      goto L23023;}}}
 L34868: {
push_exception_setupB(5, 1);
  x_1453X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1453X);
  arg0K0 = 1;
  goto L25342;}
 L47169: {
  val_1454X = arg0K0;
  SvalS = val_1454X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L47150: {
push_exception_setupB(5, 1);
  x_1455X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1455X);
  arg0K0 = 1;
  goto L25342;}
 L42640: {
  if ((1 == (SvalS))) {
    addr_1456X = (((char *) (-3 + arg2_1033X))) + 4;S48_WRITE_BARRIER(arg2_1033X, addr_1456X, 273);
    *((long *) addr_1456X) = (long) (273);
    goto L42646;}
  else {
    if ((17 == (255 & (*((long *) ((((char *) (-3 + arg2_1033X))) + 4)))))) {
      addr_1457X = (((char *) (-3 + arg2_1033X))) + 4;S48_WRITE_BARRIER(arg2_1033X, addr_1457X, 529);
      *((long *) addr_1457X) = (long) (529);
      goto L42646;}
    else {
      goto L42646;}}}
 L42647: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1033X);
  x_1458X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1458X);
  arg0K0 = 2;
  goto L25342;}
 L52126: {
  val_1459X = arg0K0;
  SvalS = val_1459X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L45910: {
  SvalS = x_1036X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L39186: {
  if ((0 == (3 & arg3_1038X))) {
    if (((((arg3_1038X)>>2)) < 0)) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg3_1038X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
      arg0K0 = 2;
      goto L25342;}
    else {
      arg0K0 = (((arg3_1038X)>>2));
      goto L38972;}}
  else {
    if ((3 == (3 & arg3_1038X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1038X))) + -4))))>>2))))) {
        if ((1 == mode_1039X)) {
          goto L39030;}
        else {
          if ((3 == mode_1039X)) {
            goto L39030;}
          else {
            v_1460X = ps_open_fd((((char *)(((char *) (-3 + arg3_1038X))))), 0, &v_1461X);
            arg0K0 = v_1460X;
            arg0K1 = v_1461X;
            goto L39043;}}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1038X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
        arg0K0 = 2;
        goto L25342;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg3_1038X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
      arg0K0 = 2;
      goto L25342;}}}
 L52145: {
push_exception_setupB(5, 1);
  x_1462X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1462X);
  arg0K0 = 1;
  goto L25342;}
 L46081: {
  if ((1 == (SvalS))) {
    arg2K0 = 0;
    goto L46091;}
  else {
    arg2K0 = 1;
    goto L46091;}}
 L46092: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1049X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1048X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1047X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1046X);
  x_1463X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1463X);
  arg0K0 = 5;
  goto L25342;}
 L39779: {
  if ((3 == (3 & arg3_1052X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1052X))) + -4))))>>2))))) {
      arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1052X))) + -4))))>>8)));
      goto L39781;}
    else {
      goto L39945;}}
  else {
    goto L39945;}}
 L39931: {
  if ((3 == (3 & arg3_1052X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1052X))) + -4))))>>2))))) {
      goto L39779;}
    else {
      goto L39821;}}
  else {
    goto L39821;}}
 L39821: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1053X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1052X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1054X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1055X)<<2)));
  arg0K0 = 4;
  goto L25342;}
 L46295: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1053X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1052X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1051X);
  x_1464X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1464X);
  arg0K0 = 4;
  goto L25342;}
 L42231: {
  val_1465X = arg0K0;
  SvalS = val_1465X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L52175: {
push_exception_setupB(5, 1);
  x_1466X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1466X);
  arg0K0 = 1;
  goto L25342;}
 L46443: {
  val_1467X = arg0K0;
  SvalS = val_1467X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L12130: {
  x_1468X = Spending_channels_headS;
  if ((1 == x_1468X)) {
    Spending_interruptsS = (-9 & (Spending_interruptsS));
    goto L12142;}
  else {
    goto L12142;}}
 L12148: {
  ch_1469X = arg0K0;
  prev_1470X = arg0K1;
  if ((1 == ch_1469X)) {
    addr_1471X = (((char *) (-3 + channel_1064X))) + 20;S48_WRITE_BARRIER(channel_1064X, addr_1471X, 1);
    *((long *) addr_1471X) = (long) (1);
    n_1472X = ps_abort_fd_op(((((*((long *) ((((char *) (-3 + channel_1064X))) + 8))))>>2)));
    arg0K0 = (((n_1472X)<<2));
    goto L46443;}
  else {
    if ((ch_1469X == channel_1064X)) {
      y_1473X = Spending_channels_tailS;
      if ((ch_1469X == y_1473X)) {
        Spending_channels_tailS = prev_1470X;
        goto L12172;}
      else {
        goto L12172;}}
    else {
      arg0K0 = (*((long *) ((((char *) (-3 + ch_1469X))) + 16)));
      arg0K1 = ch_1469X;
      goto L12148;}}}
 L46426: {
push_exception_setupB(5, 1);
  x_1474X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1474X);
  arg0K0 = 1;
  goto L25342;}
 L18990: {
  i_1475X = arg0K0;
  res_1476X = arg0K1;
  if ((-1 == i_1475X)) {
    SvalS = res_1476X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    channel_1477X = *((Svm_channelsS) + i_1475X);
    if ((3 == (3 & channel_1477X))) {
      if ((6 == (31 & ((((*((long *) ((((char *) (-3 + channel_1477X))) + -4))))>>2))))) {
        addr_1478X = s48_allocate_small(12);
        *((long *) addr_1478X) = (long) (2050);
        x_1479X = 3 + (((long) (addr_1478X + 4)));
        *((long *) (((char *) (-3 + x_1479X)))) = (long) (channel_1477X);
        *((long *) ((((char *) (-3 + x_1479X))) + 4)) = (long) (res_1476X);
        arg0K0 = x_1479X;
        goto L19004;}
      else {
        arg0K0 = res_1476X;
        goto L19004;}}
    else {
      arg0K0 = res_1476X;
      goto L19004;}}}
 L40064: {
  old_1480X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  if ((1 == old_1480X)) {
    goto L40080;}
  else {
    addr_1481X = ((char *) (-3 + old_1480X));S48_WRITE_BARRIER(old_1480X, addr_1481X, 1);
    *((long *) addr_1481X) = (long) (1);
    goto L40080;}}
 L40095: {
  if ((proposal_1071X == (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12))))) {
    SvalS = 13;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (proposal_1071X);
    arg0K0 = 1;
    goto L25342;}}
 L10903: {
  i_1482X = arg0K0;
  stob_1483X = *((long *) ((((char *) (-3 + log_1073X))) + (((i_1482X)<<2))));
  if ((1 == stob_1483X)) {
    log_1484X = *((long *) ((((char *) (-3 + proposal_1072X))) + 8));
    arg0K0 = 0;
    goto L11141;}
  else {
    value_1485X = *((long *) ((((char *) (-3 + log_1073X))) + (8 + (((i_1482X)<<2)))));
    verify_1486X = *((long *) ((((char *) (-3 + log_1073X))) + (12 + (((i_1482X)<<2)))));
    if ((29 == verify_1486X)) {
      if ((3 == (3 & stob_1483X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1483X))) + -4)))))) {
          goto L10955;}
        else {
          goto L40343;}}
      else {
        goto L40343;}}
    else {
      if ((verify_1486X == (*((long *) ((((char *) (-3 + stob_1483X))) + (-4 & (*((long *) ((((char *) (-3 + log_1073X))) + (4 + (((i_1482X)<<2)))))))))))) {
        if ((verify_1486X == value_1485X)) {
          goto L10955;}
        else {
          if ((3 == (3 & stob_1483X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1483X))) + -4)))))) {
              goto L10955;}
            else {
              goto L40343;}}
          else {
            goto L40343;}}}
      else {
        goto L40343;}}}}
 L31077: {
  value_1487X = arg0K0;
  SvalS = value_1487X;
  Scode_pointerS = ((Scode_pointerS) + 3);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L31078: {
push_exception_setupB(5, 3);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (stob_1074X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((type_1075X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((offset_1076X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L31171: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1082X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((from_index_1083X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1080X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((to_index_1084X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1085X)<<2)));
  arg0K0 = 5;
  goto L25342;}
 L31231: {
  memmove((void *)((((char *) (-3 + arg3_1080X))) + to_index_1084X), (void *)((((char *) (-3 + arg5_1082X))) + from_index_1083X),count_1085X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L31319: {
  left_1488X = arg0K0;
  copies_1489X = arg0K1;
  if ((1 == copies_1489X)) {
    if ((left_1488X < count_1085X)) {
      goto L31171;}
    else {
      from_index_1490X = ((from_index_1083X)<<2);
      to_index_1491X = ((to_index_1084X)<<2);
      count_1492X = ((count_1085X)<<2);
      Stemp0S = arg5_1082X;
      Stemp1S = arg3_1080X;
      addr_1493X = s48_allocate_tracedAgc(28);
      if ((addr_1493X == NULL)) {
        arg0K0 = 1;
        goto L10610;}
      else {
        *((long *) addr_1493X) = (long) (6154);
        arg0K0 = (3 + (((long) (addr_1493X + 4))));
        goto L10610;}}}
  else {
    arg0K0 = (left_1488X - ((((*((long *) ((((char *) (-3 + copies_1489X))) + 16))))>>2)));
    arg0K1 = (*((long *) ((((char *) (-3 + copies_1489X))) + 20)));
    goto L31319;}}
 L31528: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1090X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1091X)<<2)));
  arg0K0 = 2;
  goto L25342;}
 L31527: {
  value_1494X = arg0K0;
  SvalS = value_1494X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L16529: {
  i_1495X = arg0K0;
  next_stob_1496X = *((long *) ((((char *) (-3 + log_1095X))) + (((i_1495X)<<2))));
  if ((1 == next_stob_1496X)) {
    v_1497X = add_log_entryAgc(2, i_1495X, arg2_1090X, index_1094X, ((((*((unsigned char *) ((((char *) (-3 + arg2_1090X))) + (((index_1094X)>>2))))))<<2)), 1);
    arg0K0 = v_1497X;
    goto L31527;}
  else {
    if ((arg2_1090X == next_stob_1496X)) {
      if ((index_1094X == (*((long *) ((((char *) (-3 + log_1095X))) + (4 + (((i_1495X)<<2)))))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + log_1095X))) + (8 + (((i_1495X)<<2))))));
        goto L31527;}
      else {
        goto L16551;}}
    else {
      goto L16551;}}}
 L34158: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1090X);
  x_1498X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1498X);
  arg0K0 = 2;
  goto L25342;}
 L31654: {
push_exception_setupB(7, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1097X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1098X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1099X);
  arg0K0 = 3;
  goto L25342;}
 L31653: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L16705: {
  i_1499X = arg0K0;
  next_stob_1500X = *((long *) ((((char *) (-3 + log_1103X))) + (((i_1499X)<<2))));
  if ((1 == next_stob_1500X)) {add_log_entryAgc(2, i_1499X, arg3_1097X, index_1102X, byte_1099X, 0);
    goto L31653;}
  else {
    if ((arg3_1097X == next_stob_1500X)) {
      if ((index_1102X == (*((long *) ((((char *) (-3 + log_1103X))) + (4 + (((i_1499X)<<2)))))))) {
        addr_1501X = (((char *) (-3 + log_1103X))) + (8 + (((i_1499X)<<2)));S48_WRITE_BARRIER(log_1103X, addr_1501X, byte_1099X);
        *((long *) addr_1501X) = (long) (byte_1099X);
        goto L31653;}
      else {
        goto L16725;}}
    else {
      goto L16725;}}}
 L31619: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1097X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1098X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (byte_1099X);
  arg0K0 = 3;
  goto L25342;}
 L34263: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1097X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1096X);
  x_1502X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1502X);
  arg0K0 = 3;
  goto L25342;}
 L43266: {
  reason_1503X = arg0K0;
  status_1504X = arg0K1;push_exception_setupB(reason_1503X, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1107X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1106X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1105X);
  merged_arg0K0 = status_1504X;
  merged_arg0K1 = 0;
  get_error_string_return_tag = 3;
  goto get_error_string;
 get_error_string_return_3:
  x_1505X = get_error_string0_return_value;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1505X);
  arg0K0 = 4;
  goto L25342;}
 L47806: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1107X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1106X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1105X);
  x_1506X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1506X);
  arg0K0 = 4;
  goto L25342;}
 L48542: {
  i_1507X = arg0K0;
  h_1508X = arg0K1;
  if ((i_1507X < n_1119X)) {
    arg0K0 = (1 + i_1507X);
    arg0K1 = (h_1508X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + x_1118X))) + i_1507X))))))));
    goto L48542;}
  else {
    SvalS = (((h_1508X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L48519: {
push_exception_setupB(5, 1);
  x_1509X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1509X);
  arg0K0 = 1;
  goto L25342;}
 L43541: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1120X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1121X);
  arg0K0 = 2;
  goto L25342;}
 L46562: {
  firstP_1510X = arg2K0;
  vector_1511X = s48_find_all(type_1134X);
  if ((1 == vector_1511X)) {
    if (firstP_1510X) {s48_collect();
      arg2K0 = 0;
      goto L46562;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((type_1134X)<<2)));
      arg0K0 = 1;
      goto L25342;}}
  else {
    SvalS = vector_1511X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L52283: {
  firstP_1512X = arg2K0;
  type_1513X = arg0K1;
  vector_1514X = s48_find_all_records(type_1513X);
  if ((1 == vector_1514X)) {
    if (firstP_1512X) {
      Stemp0S = type_1513X;s48_collect();
      value_1515X = Stemp0S;
      Stemp0S = 1;
      arg2K0 = 0;
      arg0K1 = value_1515X;
      goto L52283;}
    else {push_exception_setupB(8, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (type_1513X);
      arg0K0 = 1;
      goto L25342;}}
  else {
    SvalS = vector_1514X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L28440: {
push_exception_setupB(5, 1);
  x_1516X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1516X);
  arg0K0 = 1;
  goto L25342;}
 L26786: {
  Slast_code_calledS = code_1141X;
  Scode_pointerS = ((((char *) (-3 + code_1141X))) + (pc_1144X + (((size_1143X)>>2))));
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L25603: {
  ps_write_string("returning to nc ", (stderr));
  ps_write_integer((*((long *) (SstackS))), (stderr));
  arg0K0 = 0;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L24800;}
 L27345: {
push_exception_setupB(5, 1);
  x_1517X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1517X);
  arg0K0 = 1;
  goto L25342;}
 L52331: {
  SvalS = (((old_1152X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L49574: {
  x_1518X = s48_schedule_alarm_interrupt((((p_1164X)>>2)));
  SvalS = (((x_1518X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L47354: {
  if ((1 == (SvalS))) {
    arg2K0 = 0;
    goto L47358;}
  else {
    arg2K0 = 1;
    goto L47358;}}
 L47359: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1166X);
  x_1519X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1519X);
  arg0K0 = 2;
  goto L25342;}
 L31853: {
  rest_list_1520X = arg0K0;
  if ((25 == rest_list_1520X)) {
    name_1521X = *((long *) ((SstackS) + (-8 + (((nargs_1169X)<<2)))));
    proc_1522X = *((long *) ((SstackS) + (-4 + (((nargs_1169X)<<2)))));
    args_1523X = SstackS;
    if ((3 == (3 & name_1521X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + name_1521X))) + -4))))>>2))))) {
        if ((3 == (3 & proc_1522X))) {
          if ((17 == (31 & ((((*((long *) ((((char *) (-3 + proc_1522X))) + -4))))>>2))))) {
            if ((4 == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + proc_1522X))) + -4))))>>8)))) {
              SstackS = (ScontS);
              result_1524X = s48_external_call(proc_1522X, name_1521X, (-2 + nargs_1169X), args_1523X);
              if ((Sexternal_exceptionPS)) {
                Sexternal_exceptionPS = 0;
                arg0K0 = (Sexternal_exception_nargsS);
                goto L25342;}
              else {
                SvalS = result_1524X;
                Scode_pointerS = ((Scode_pointerS) + 1);
                arg1K0 = (Scode_pointerS);
                goto L26704;}}
            else {
              goto L32109;}}
          else {
            goto L32109;}}
        else {
          goto L32109;}}
      else {
        goto L32109;}}
    else {
      goto L32109;}}
  else {
    x_1525X = *((long *) (((char *) (-3 + rest_list_1520X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1525X);
    arg0K0 = (*((long *) ((((char *) (-3 + rest_list_1520X))) + 4)));
    goto L31853;}}
 L46657: {
  if ((1 == (SvalS))) {
    v_1526X = Hlookup2762((Sexported_bindingsS), arg2_1173X, 0);
    arg0K0 = v_1526X;
    goto L46698;}
  else {
    v_1527X = Hlookup2743((Simported_bindingsS), arg2_1173X, 0);
    arg0K0 = v_1527X;
    goto L46698;}}
 L46662: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1173X);
  x_1528X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1528X);
  arg0K0 = 2;
  goto L25342;}
 L33419: {
  if ((1 == (SvalS))) {
    arg0K0 = (Sexported_bindingsS);
    goto L33454;}
  else {
    arg0K0 = (Simported_bindingsS);
    goto L33454;}}
 L33424: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1175X);
  x_1529X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1529X);
  arg0K0 = 2;
  goto L25342;}
 L52391: {
  firstP_1530X = arg2K0;
  vector_1531X = s48_gather_objects(shared_binding_undefinedP, for_each_imported_binding);
  if ((1 == vector_1531X)) {
    if (firstP_1530X) {s48_collect();
      arg2K0 = 0;
      goto L52391;}
    else {push_exception_setupB(8, 1);
      arg0K0 = 0;
      goto L25342;}}
  else {
    SvalS = vector_1531X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L48453: {
  option_1532X = arg0K0;
  seconds_1533X = arg0K1;
  mseconds_1534X = arg0K2;
  if ((536869 < seconds_1533X)) {push_exception_setupB(6, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((option_1532X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((seconds_1533X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mseconds_1534X)<<2)));
    arg0K0 = 3;
    goto L25342;}
  else {
    SvalS = (((((1000 * seconds_1533X) + mseconds_1534X))<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L52446: {
  s48_Scallback_return_stack_blockS = arg2_1191X;
  arg0K0 = x_1192X;
  goto L54872;}
 L41237: {
  val_1535X = arg0K0;
  SvalS = val_1535X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41202: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1193X);
  x_1536X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1536X);
  arg0K0 = 2;
  goto L25342;}
 L40884: {
  len_1537X = 1 + n_1198X;
  addr_1538X = s48_allocate_small((4 + len_1537X));
  *((long *) addr_1538X) = (long) ((66 + (((len_1537X)<<8))));
  string_1539X = 3 + (((long) (addr_1538X + 4)));
  *((unsigned char *) ((((char *) (-3 + string_1539X))) + n_1198X)) = (unsigned char) (0);
  arg0K0 = arg2_1197X;
  arg0K1 = (-1 + n_1198X);
  goto L40861;}
 L40836: {
  if ((25 == arg2_1197X)) {
    goto L40884;}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_1197X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((n_1198X)<<2)));
    arg0K0 = 2;
    goto L25342;}}
 L42294: {
  list_1540X = arg0K0;
  slow_1541X = arg0K1;
  move_slowP_1542X = arg2K2;
  if ((25 == list_1540X)) {
    SvalS = 1;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    if ((3 == (3 & list_1540X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + list_1540X))) + -4))))>>2))))) {
        head_1543X = *((long *) (((char *) (-3 + list_1540X))));
        if ((3 == (3 & head_1543X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + head_1543X))) + -4))))>>2))))) {
            if (((*((long *) (((char *) (-3 + head_1543X))))) == arg2_1200X)) {
              SvalS = head_1543X;
              Scode_pointerS = ((Scode_pointerS) + 1);
              arg1K0 = (Scode_pointerS);
              goto L26704;}
            else {
              list_1544X = *((long *) ((((char *) (-3 + list_1540X))) + 4));
              if ((list_1544X == slow_1541X)) {push_exception_setupB(5, 1);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (arg2_1200X);
                SstackS = ((SstackS) + -4);
                *((long *) (SstackS)) = (long) (list_1201X);
                arg0K0 = 2;
                goto L25342;}
              else {
                if (move_slowP_1542X) {
                  arg0K0 = list_1544X;
                  arg0K1 = (*((long *) ((((char *) (-3 + slow_1541X))) + 4)));
                  arg2K2 = 0;
                  goto L42294;}
                else {
                  arg0K0 = list_1544X;
                  arg0K1 = slow_1541X;
                  arg2K2 = 1;
                  goto L42294;}}}}
          else {push_exception_setupB(5, 1);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (arg2_1200X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (list_1201X);
            arg0K0 = 2;
            goto L25342;}}
        else {push_exception_setupB(5, 1);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (arg2_1200X);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (list_1201X);
          arg0K0 = 2;
          goto L25342;}}
      else {push_exception_setupB(5, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg2_1200X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (list_1201X);
        arg0K0 = 2;
        goto L25342;}}
    else {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg2_1200X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (list_1201X);
      arg0K0 = 2;
      goto L25342;}}}
 L32185: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1203X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1202X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1204X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L32175: {
  arg0K0 = (*((long *) ((((char *) (-3 + arg3_1203X))) + (((index_1204X)<<2)))));
  goto L32184;}
 L32184: {
  value_1545X = arg0K0;
  SvalS = value_1545X;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L32205: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1203X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_1202X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1204X)<<2)));
  arg0K0 = 3;
  goto L25342;}
 L32443: {
push_exception_setupB(7, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1211X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1210X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1212X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1213X);
  arg0K0 = 4;
  goto L25342;}
 L32433: {
  addr_1546X = (((char *) (-3 + arg4_1211X))) + (((index_1212X)<<2));S48_WRITE_BARRIER(arg4_1211X, addr_1546X, value_1213X);
  *((long *) addr_1546X) = (long) (value_1213X);
  goto L32442;}
 L32442: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L32465: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1211X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg3_1210X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((index_1212X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (value_1213X);
  arg0K0 = 4;
  goto L25342;}
 L32722: {
  port_1547X = arg0K0;
  if ((3 == (3 & port_1547X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1547X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1547X))) + 4))))>>2))))) {
        goto L32779;}
      else {
        b_1548X = *((long *) ((((char *) (-3 + port_1547X))) + 16));
        if ((1 == b_1548X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1547X);
          arg0K0 = 1;
          goto L25342;}
        else {
          p_1549X = *((long *) ((((char *) (-3 + port_1547X))) + 20));
          p_1550X = *((long *) ((((char *) (-3 + port_1547X))) + 24));
          i_1551X = ((p_1549X)>>2);
          if ((i_1551X == (((p_1550X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1547X);
            arg0K0 = 1;
            goto L25342;}
          else {
            val_1552X = 4 + (((i_1551X)<<2));
            addr_1553X = (((char *) (-3 + port_1547X))) + 20;S48_WRITE_BARRIER(port_1547X, addr_1553X, val_1552X);
            *((long *) addr_1553X) = (long) (val_1552X);
            SvalS = (9 + ((((((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + b_1548X))) + i_1551X))))))))<<8)));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg1K0 = (Scode_pointerS);
            goto L26704;}}}}
    else {
      goto L32779;}}
  else {
    goto L32779;}}
 L32924: {
  port_1554X = arg0K0;
  if ((3 == (3 & port_1554X))) {
    if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1554X))) + -4))))>>2))))) {
      if ((0 == (4 & ((((*((long *) ((((char *) (-3 + port_1554X))) + 4))))>>2))))) {
        goto L32981;}
      else {
        b_1555X = *((long *) ((((char *) (-3 + port_1554X))) + 16));
        if ((1 == b_1555X)) {push_exception_setupB(13, 2);
          SstackS = ((SstackS) + -4);
          *((long *) (SstackS)) = (long) (port_1554X);
          arg0K0 = 1;
          goto L25342;}
        else {
          p_1556X = *((long *) ((((char *) (-3 + port_1554X))) + 20));
          p_1557X = *((long *) ((((char *) (-3 + port_1554X))) + 24));
          i_1558X = ((p_1556X)>>2);
          if ((i_1558X == (((p_1557X)>>2)))) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1554X);
            arg0K0 = 1;
            goto L25342;}
          else {
            SvalS = (9 + ((((((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + b_1555X))) + i_1558X))))))))<<8)));
            Scode_pointerS = ((Scode_pointerS) + 2);
            arg1K0 = (Scode_pointerS);
            goto L26704;}}}}
    else {
      goto L32981;}}
  else {
    goto L32981;}}
 L33119: {
  Kchar_1559X = arg0K0;
  port_1560X = arg0K1;
  if ((9 == (255 & Kchar_1559X))) {
    if ((3 == (3 & port_1560X))) {
      if ((7 == (31 & ((((*((long *) ((((char *) (-3 + port_1560X))) + -4))))>>2))))) {
        if ((0 == (8 & ((((*((long *) ((((char *) (-3 + port_1560X))) + 4))))>>2))))) {
          goto L33179;}
        else {
          b_1561X = *((long *) ((((char *) (-3 + port_1560X))) + 16));
          if ((1 == b_1561X)) {push_exception_setupB(13, 2);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (Kchar_1559X);
            SstackS = ((SstackS) + -4);
            *((long *) (SstackS)) = (long) (port_1560X);
            arg0K0 = 2;
            goto L25342;}
          else {
            i_1562X = (((*((long *) ((((char *) (-3 + port_1560X))) + 20))))>>2);
            if ((i_1562X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + b_1561X))) + -4))))>>8)))) {push_exception_setupB(13, 2);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (Kchar_1559X);
              SstackS = ((SstackS) + -4);
              *((long *) (SstackS)) = (long) (port_1560X);
              arg0K0 = 2;
              goto L25342;}
            else {
              val_1563X = 4 + (((i_1562X)<<2));
              addr_1564X = (((char *) (-3 + port_1560X))) + 20;S48_WRITE_BARRIER(port_1560X, addr_1564X, val_1563X);
              *((long *) addr_1564X) = (long) (val_1563X);
              *((unsigned char *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + port_1560X))) + 16)))))) + i_1562X)) = (unsigned char) ((((unsigned char) (((char) (((Kchar_1559X)>>8)))))));
              SvalS = 13;
              Scode_pointerS = ((Scode_pointerS) + 2);
              arg1K0 = (Scode_pointerS);
              goto L26704;}}}}
      else {
        goto L33179;}}
    else {
      goto L33179;}}
  else {
    goto L33179;}}
 L42547: {
  stuff_1565X = arg0K0;
  if ((3 == (3 & stuff_1565X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + stuff_1565X))) + -4))))>>2))))) {
      thing_1566X = *((long *) (((char *) (-3 + stuff_1565X))));
      if ((0 == (3 & thing_1566X))) {
        ps_write_integer((((thing_1566X)>>2)), out_1227X);
        goto L42553;}
      else {
        if ((9 == (255 & thing_1566X))) {
          ps_write_string("#\\", out_1227X);
          { long ignoreXX;
          PS_WRITE_CHAR((((char) (((thing_1566X)>>8)))), out_1227X, ignoreXX) }
          goto L42553;}
        else {
          if ((3 == (3 & thing_1566X))) {
            if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
              if ((0 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>8))))>>2)))) {
                type_1567X = *((long *) (((char *) (-3 + thing_1566X))));
                if ((3 == (3 & type_1567X))) {
                  if ((9 == (31 & ((((*((long *) ((((char *) (-3 + type_1567X))) + -4))))>>2))))) {
                    if ((2 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + type_1567X))) + -4))))>>8))))>>2)))) {
                      obj_1568X = *((long *) ((((char *) (-3 + type_1567X))) + 8));
                      if ((3 == (3 & obj_1568X))) {
                        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_1568X))) + -4))))>>2))))) {
                          ps_write_string("#{", out_1227X);
                          ps_write_string((((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + thing_1566X)))))))) + 8))))))))))))), out_1227X);
                          { long ignoreXX;
                          PS_WRITE_CHAR(125, out_1227X, ignoreXX) }
                          goto L42553;}
                        else {
                          goto L18252;}}
                      else {
                        goto L18252;}}
                    else {
                      goto L18252;}}
                  else {
                    goto L18252;}}
                else {
                  goto L18252;}}
              else {
                goto L18252;}}
            else {
              goto L18252;}}
          else {
            goto L18252;}}}}
    else {
      goto L42538;}}
  else {
    goto L42538;}}
 L24404: {
  arg_count_1569X = arg0K0;
  if ((3 == (3 & handlers_1230X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + handlers_1230X))) + -4))))>>2))))) {
      goto L24418;}
    else {
      goto L24460;}}
  else {
    goto L24460;}}
 L12347: {
  channel_1570X = arg0K0;
  x_1571X = 1 == (Spending_channels_headS);
  if (x_1571X) {
    goto L12361;}
  else {
    Spending_interruptsS = (8 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L12361;}
      else {
        goto L12361;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L12361;}}}
 L12531: {
  sig_1572X = *(Sos_signal_ringS + (Sos_signal_ring_startS));
  if ((31 == (Sos_signal_ring_startS))) {
    arg0K0 = 0;
    goto L12535;}
  else {
    arg0K0 = (1 + (Sos_signal_ring_startS));
    goto L12535;}}
 L9007: {
  count_1573X = arg0K0;
  i_1574X = arg0K1;
  offset_1575X = arg0K2;
  if ((0 == count_1573X)) {
    if ((i_1574X < total_count_1266X)) {
      arg0K0 = i_1574X;
      arg0K1 = offset_1575X;
      goto L7413;}
    else {
      arg0K0 = offset_1575X;
      goto L54889;}}
  else {
    value_1576X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1575X)))))<<2))));
    addr_1577X = (((char *) (-3 + new_env_1263X))) + (((i_1574X)<<2));S48_WRITE_BARRIER(new_env_1263X, addr_1577X, value_1576X);
    *((long *) addr_1577X) = (long) (value_1576X);
    arg0K0 = (-1 + count_1573X);
    arg0K1 = (1 + i_1574X);
    arg0K2 = (1 + offset_1575X);
    goto L9007;}}
 L11530: {
  count_1578X = arg0K0;
  i_1579X = arg0K1;
  offset_1580X = arg0K2;
  if ((0 == count_1578X)) {
    if ((i_1579X < total_count_1275X)) {
      arg0K0 = i_1579X;
      arg0K1 = offset_1580X;
      goto L8211;}
    else {
      arg0K0 = offset_1580X;
      goto L54880;}}
  else {
    value_1581X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1580X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1580X))))))<<2))));
    addr_1582X = (((char *) (-3 + new_env_1272X))) + (((i_1579X)<<2));S48_WRITE_BARRIER(new_env_1272X, addr_1582X, value_1581X);
    *((long *) addr_1582X) = (long) (value_1581X);
    arg0K0 = (-1 + count_1578X);
    arg0K1 = (1 + i_1579X);
    arg0K2 = (2 + offset_1580X);
    goto L11530;}}
 L50215: {
  pending_interruptP_return_tag = 5;
  goto pending_interruptP;
 pending_interruptP_return_5:
  v_1583X = pending_interruptP0_return_value;
  if (v_1583X) {
    arg0K0 = 2;
    goto L24660;}
  else {
    goto L50222;}}
 L50222: {
  v_1584X = s48_call_native_procedure((SvalS), 2);
  arg0K0 = v_1584X;
  goto L50012;}
 L50357: {
  pop_continuationB_return_tag = 4;
  goto pop_continuationB;
 pop_continuationB_return_4:
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L50142: {
  protocol_skip_1585X = arg0K0;
  SstackS = (ScontS);
  cont_1586X = ScontS;
  pointer_1587X = (((char *) (*((long *) cont_1586X)))) + -2;
  size_1588X = ((((*((unsigned char *) pointer_1587X)))<<8)) + (*((unsigned char *) (pointer_1587X + 1)));
  if ((65535 == size_1588X)) {
    arg0K0 = ((((*((long *) (cont_1586X + 4))))>>2));
    goto L50153;}
  else {
    arg0K0 = size_1588X;
    goto L50153;}}
 L25688: {
  cont_1589X = arg0K0;
  if ((1 == cont_1589X)) {
    if ((0 == (3 & (SvalS)))) {
      s48_Scallback_return_stack_blockS = 1;
      arg0K0 = ((((SvalS))>>2));
      goto L54872;}
    else {
      goto L25703;}}
  else {
    goto L25703;}}
 L50501: {
  v_1590X = arg0K0;
  ScontS = (cont_1321X + (4 + (((v_1590X)<<2))));
  merged_arg0K0 = 0;
  move_args_above_contB_return_tag = 7;
  goto move_args_above_contB;
 move_args_above_contB_return_7:
  goto L50406;}
 L50406: {
  x_1591X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1591X);
  SvalS = proc_1320X;
  arg0K0 = 1;
  arg0K1 = 25;
  arg0K2 = 0;
  goto L49753;}
 L24889: {
  v_1592X = arg0K0;
  SvalS = v_1592X;
  pop_continuationB_return_tag = 5;
  goto pop_continuationB;
 pop_continuationB_return_5:
  arg0K0 = 1;
  goto L27128;}
 L25771: {
  stack_nargs_1593X = arg0K0;
  list_args_1594X = arg0K1;
  merged_arg0K0 = list_args_1594X;
  merged_arg0K1 = stack_nargs_1593X;
  pop_args_GlistSAgc_return_tag = 9;
  goto pop_args_GlistSAgc;
 pop_args_GlistSAgc_return_9:
  args_1595X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (args_1595X);
  arg0K0 = 2;
  goto L25342;}
 L27128: {
  bytes_used_1596X = arg0K0;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1596X));
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L50686: {
  v_1597X = arg0K0;
  SvalS = v_1597X;
  arg0K0 = 2;
  goto L50142;}
 L24835: {
  if ((1 == (stack_nargs_1333X + list_arg_count_1335X))) {
    if ((1 == stack_nargs_1333X)) {
      v_1598X = *((long *) (SstackS));
      SstackS = ((SstackS) + 4);
      arg0K0 = v_1598X;
      goto L24913;}
    else {
      arg0K0 = (*((long *) (((char *) (-3 + list_args_1334X)))));
      goto L24913;}}
  else {
    arg0K0 = stack_nargs_1333X;
    arg0K1 = list_args_1334X;
    goto L25771;}}
 L24952: {
  v_1599X = arg0K0;
  ScontS = (cont_1344X + (4 + (((v_1599X)<<2))));
  merged_arg0K0 = stack_nargs_1333X;
  move_args_above_contB_return_tag = 8;
  goto move_args_above_contB;
 move_args_above_contB_return_8:
  arg0K0 = stack_nargs_1333X;
  arg0K1 = list_args_1334X;
  arg0K2 = list_arg_count_1335X;
  goto L49753;}
 L28178: {
  loc_1600X = arg1K0;
  arg_1601X = arg1K1;
  if ((arg_1601X < arg_top_1349X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1333X)<<2))));
    if ((count_1347X < stack_nargs_1333X)) {
      merged_arg0K0 = list_args_1334X;
      merged_arg0K1 = (stack_nargs_1333X - count_1347X);
      pop_args_GlistSAgc_return_tag = 10;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_10:
      v_1602X = pop_args_GlistSAgc0_return_value;
      arg0K0 = v_1602X;
      goto L28157;}
    else {
      arg0K0 = stack_nargs_1333X;
      arg0K1 = list_args_1334X;
      goto L28139;}}
  else {
    *((long *) loc_1600X) = (long) ((*((long *) arg_1601X)));
    arg1K0 = (loc_1600X + -4);
    arg1K1 = (arg_1601X + -4);
    goto L28178;}}
 L28030: {
  count_1603X = arg0K0;
  bytes_used_1604X = arg0K1;
  stack_nargs_1605X = arg0K2;
  list_args_1606X = arg0K3;
  list_arg_count_1607X = arg0K4;
  if ((count_1603X == (stack_nargs_1605X + list_arg_count_1607X))) {
    arg_top_1608X = SstackS;
    pop_continuationB_return_tag = 6;
    goto pop_continuationB;
   pop_continuationB_return_6:
    arg1K0 = ((SstackS) + -4);
    arg1K1 = (arg_top_1608X + (-4 + (((stack_nargs_1605X)<<2))));
    goto L28062;}
  else {
    merged_arg0K0 = list_args_1606X;
    merged_arg0K1 = stack_nargs_1605X;
    pop_args_GlistSAgc_return_tag = 11;
    goto pop_args_GlistSAgc;
   pop_args_GlistSAgc_return_11:
    args_1609X = pop_args_GlistSAgc0_return_value;push_exception_setupB(4, 0);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (args_1609X);
    arg0K0 = 2;
    goto L25342;}}
 L28344: {
push_exception_setupB(5, 8);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (template_848X);
  arg0K0 = 1;
  goto L25342;}
 L15433: {
  if ((3 == (3 & x_869X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + x_869X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L51719;}
    else {
      goto L15439;}}
  else {
    goto L15439;}}
 L41778: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (n_870X);
  arg0K0 = 1;
  goto L25342;}
 L41773: {
  if ((3 == (3 & n_870X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_870X))) + -4))))>>2))))) {
      goto L41778;}
    else {
      goto L41779;}}
  else {
    goto L41779;}}
 L41931: {
  SvalS = 5;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41914: {
  if ((3 == (3 & n_1357X))) {
    if ((8 == (31 & ((((*((long *) ((((char *) (-3 + n_1357X))) + -4))))>>2))))) {
      goto L41931;}
    else {
      goto L41922;}}
  else {
    goto L41922;}}
 L35010: {
  val_1610X = integer_add(arg2_874X, y_875X);
  SvalS = val_1610X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35027: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_874X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_875X);
  arg0K0 = 2;
  goto L25342;}
 L9171: {
  b_1611X = arg0K0;
  lo_a_1612X = 65535 & a_1367X;
  lo_b_1613X = 65535 & b_1611X;
  hi_a_1614X = 65535 & (((a_1367X)>>16));
  hi_b_1615X = 65535 & (((b_1611X)>>16));
  lo_c_1616X = SMALL_MULTIPLY(lo_a_1612X, lo_b_1613X);
  v_1617X = SMALL_MULTIPLY(lo_a_1612X, hi_b_1615X);
  v_1618X = SMALL_MULTIPLY(lo_b_1613X, hi_a_1614X);
  mid_c_1619X = v_1617X + v_1618X;
  c_1620X = lo_c_1616X + (((mid_c_1619X)<<16));
  if ((0 < hi_a_1614X)) {
    if ((0 < hi_b_1615X)) {
      val_1621X = integer_multiply(arg2_877X, y_878X);
      SvalS = val_1621X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
    else {
      goto L9213;}}
  else {
    goto L9213;}}
 L43667: {
  val_1622X = integer_multiply(arg2_877X, y_878X);
  SvalS = val_1622X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L43684: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_877X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_878X);
  arg0K0 = 2;
  goto L25342;}
 L35299: {
  val_1623X = integer_subtract(arg2_881X, y_882X);
  SvalS = val_1623X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35316: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_881X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_882X);
  arg0K0 = 2;
  goto L25342;}
 L9429: {
  b_1624X = arg0K0;
  c_1625X = a_1383X / b_1624X;
  x_1626X = 0 == (a_1383X % b_1624X);
  if (x_1626X) {
    if ((a_886X < 0)) {
      if ((b_887X < 0)) {s48_make_availableAgc(16);
        if ((536870911 < c_1625X)) {
          goto L53206;}
        else {
          if ((c_1625X < -536870912)) {
            goto L53206;}
          else {
            arg0K0 = (((c_1625X)<<2));
            goto L53201;}}}
      else {
        goto L9475;}}
    else {
      if ((b_887X < 0)) {
        goto L9475;}
      else {s48_make_availableAgc(16);
        if ((536870911 < c_1625X)) {
          goto L53228;}
        else {
          if ((c_1625X < -536870912)) {
            goto L53228;}
          else {
            arg0K0 = (((c_1625X)<<2));
            goto L53223;}}}}}
  else {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_884X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_885X);
    arg0K0 = 2;
    goto L25342;}}
 L43920: {
  if ((0 == (3 & arg2_884X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L16877;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_884X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L16877;}}
 L43964: {
  result_1627X = arg0K0;
  if ((1 == result_1627X)) {push_exception_setupB(5, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg2_884X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (y_885X);
    arg0K0 = 2;
    goto L25342;}
  else {
    SvalS = result_1627X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L43971: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_884X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_885X);
  arg0K0 = 2;
  goto L25342;}
 L35584: {
  b_1628X = integerE(arg2_888X, y_889X);
  if (b_1628X) {
    arg0K0 = 5;
    goto L35588;}
  else {
    arg0K0 = 1;
    goto L35588;}}
 L35604: {
  val_1629X = arg0K0;
  SvalS = val_1629X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35605: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_888X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_889X);
  arg0K0 = 2;
  goto L25342;}
 L35844: {
  if ((0 == (3 & arg2_890X))) {
    if ((0 == (3 & y_891X))) {
      if ((arg2_890X < y_891X)) {
        arg0K0 = 5;
        goto L35848;}
      else {
        arg0K0 = 1;
        goto L35848;}}
    else {
      v_1630X = s48_bignum_test((((char *) (-3 + y_891X))));
      if ((1 == v_1630X)) {
        arg0K0 = 5;
        goto L35848;}
      else {
        arg0K0 = 1;
        goto L35848;}}}
  else {
    if ((0 == (3 & y_891X))) {
      v_1631X = s48_bignum_test((((char *) (-3 + arg2_890X))));
      if ((1 == v_1631X)) {
        arg0K0 = 1;
        goto L35848;}
      else {
        arg0K0 = 5;
        goto L35848;}}
    else {
      v_1632X = s48_bignum_compare((((char *) (-3 + arg2_890X))), (((char *) (-3 + y_891X))));
      if ((-1 == v_1632X)) {
        arg0K0 = 5;
        goto L35848;}
      else {
        arg0K0 = 1;
        goto L35848;}}}}
 L35864: {
  val_1633X = arg0K0;
  SvalS = val_1633X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35865: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_890X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_891X);
  arg0K0 = 2;
  goto L25342;}
 L36167: {
  if ((0 == (3 & y_893X))) {
    if ((0 == (3 & arg2_892X))) {
      if ((y_893X < arg2_892X)) {
        arg0K0 = 5;
        goto L36171;}
      else {
        arg0K0 = 1;
        goto L36171;}}
    else {
      v_1634X = s48_bignum_test((((char *) (-3 + arg2_892X))));
      if ((1 == v_1634X)) {
        arg0K0 = 5;
        goto L36171;}
      else {
        arg0K0 = 1;
        goto L36171;}}}
  else {
    if ((0 == (3 & arg2_892X))) {
      v_1635X = s48_bignum_test((((char *) (-3 + y_893X))));
      if ((1 == v_1635X)) {
        arg0K0 = 1;
        goto L36171;}
      else {
        arg0K0 = 5;
        goto L36171;}}
    else {
      v_1636X = s48_bignum_compare((((char *) (-3 + y_893X))), (((char *) (-3 + arg2_892X))));
      if ((-1 == v_1636X)) {
        arg0K0 = 5;
        goto L36171;}
      else {
        arg0K0 = 1;
        goto L36171;}}}}
 L36187: {
  val_1637X = arg0K0;
  SvalS = val_1637X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36188: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_892X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_893X);
  arg0K0 = 2;
  goto L25342;}
 L36490: {
  b_1638X = integerLE(arg2_894X, y_895X);
  if (b_1638X) {
    arg0K0 = 5;
    goto L36494;}
  else {
    arg0K0 = 1;
    goto L36494;}}
 L36510: {
  val_1639X = arg0K0;
  SvalS = val_1639X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36511: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_894X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_895X);
  arg0K0 = 2;
  goto L25342;}
 L36784: {
  b_1640X = integerGE(arg2_896X, y_897X);
  if (b_1640X) {
    arg0K0 = 5;
    goto L36788;}
  else {
    arg0K0 = 1;
    goto L36788;}}
 L36804: {
  val_1641X = arg0K0;
  SvalS = val_1641X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36805: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_896X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_897X);
  arg0K0 = 2;
  goto L25342;}
 L10120: {
  b_1642X = arg0K0;
  c_1643X = a_1398X / b_1642X;
  if ((a_901X < 0)) {
    if ((b_902X < 0)) {
      goto L10166;}
    else {
      goto L10165;}}
  else {
    if ((b_902X < 0)) {
      goto L10165;}
    else {
      goto L10166;}}}
 L37084: {
  val_1644X = Hinteger_op7480(arg2_898X, y_899X);
  SvalS = val_1644X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37294: {
  b_1645X = arg0K0;
  c_1646X = a_1399X % b_1645X;
  if ((a_906X < 0)) {
    arg0K0 = (0 - c_1646X);
    goto L37298;}
  else {
    arg0K0 = c_1646X;
    goto L37298;}}
 L37260: {
  val_1647X = Hinteger_op7411(arg2_903X, y_904X);
  SvalS = val_1647X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L45265: {
  SvalS = 0;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L45259: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1401X);
  arg0K0 = 1;
  goto L25342;}
 L44246: {
  x_1648X = arg0K0;s48_make_availableAgc(16);
  if ((536870911 < x_1648X)) {
    goto L44272;}
  else {
    if ((x_1648X < -536870912)) {
      goto L44272;}
    else {
      arg0K0 = (((x_1648X)<<2));
      goto L44267;}}}
 L20516: {
  length_1649X = arg0K0;
  extra_1650X = arg0K1;
  Stemp0S = x_1404X;s48_make_availableAgc(((((length_1649X + extra_1650X))<<2)));
  value_1651X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1651X))) {
    v_1652X = (char *) s48_long_to_bignum((((value_1651X)>>2)));
    arg1K0 = v_1652X;
    goto L20508;}
  else {
    arg1K0 = (((char *) (-3 + value_1651X)));
    goto L20508;}}
 L37909: {
  x_1653X = arg0K0;
  count_1654X = arg0K1;
  if ((0 == x_1653X)) {
    SvalS = (((count_1654X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    arg0K0 = (((x_1653X)>>1));
    arg0K1 = (count_1654X + (1 & x_1653X));
    goto L37909;}}
 L37994: {
  val_1655X = integer_bitwise_and(arg2_932X, y_933X);
  SvalS = val_1655X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L38157: {
  val_1656X = integer_bitwise_ior(arg2_934X, y_935X);
  SvalS = val_1656X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L38320: {
  val_1657X = integer_bitwise_xor(arg2_936X, y_937X);
  SvalS = val_1657X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L44416: {
  v_1658X = (char *) s48_long_to_bignum(x_1415X);
  v_1659X = enter_bignum(v_1658X);
  arg0K0 = v_1659X;
  goto L44411;}
 L44411: {
  val_1660X = arg0K0;
  SvalS = val_1660X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L44438: {
  v_1661X = (char *) s48_long_to_bignum(result_1417X);
  v_1662X = enter_bignum(v_1661X);
  arg0K0 = v_1662X;
  goto L44433;}
 L44433: {
  val_1663X = arg0K0;
  SvalS = val_1663X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L44309: {
  x_1664X = arg0K0;
  y_1665X = arg0K1;
  y_1666X = ((y_1665X)>>2);
  merged_arg0K0 = x_1664X;
  merged_arg0K1 = y_1666X;
  shift_space_return_tag = 1;
  goto shift_space;
 shift_space_return_1:
  needed_1667X = shift_space0_return_value;
  Stemp0S = x_1664X;s48_make_availableAgc((((needed_1667X)<<2)));
  value_1668X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1668X))) {
    v_1669X = (char *) s48_long_to_bignum((((value_1668X)>>2)));
    arg1K0 = v_1669X;
    goto L44383;}
  else {
    arg1K0 = (((char *) (-3 + value_1668X)));
    goto L44383;}}
 L44460: {
  v_1670X = (char *) s48_long_to_bignum(result_1417X);
  v_1671X = enter_bignum(v_1670X);
  arg0K0 = v_1671X;
  goto L44455;}
 L44455: {
  val_1672X = arg0K0;
  SvalS = val_1672X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L44491: {
  x_1673X = arg1K0;
  external_bignum_1674X = (char *) s48_bignum_arithmetic_shift(x_1673X, y_1419X);
  v_1675X = s48_bignum_fits_in_word_p(external_bignum_1674X, 30, 1);
  if (v_1675X) {
    n_1676X = s48_bignum_to_long(external_bignum_1674X);
    arg0K0 = (((n_1676X)<<2));
    goto L44317;}
  else {
    v_1677X = enter_bignum(external_bignum_1674X);
    arg0K0 = v_1677X;
    goto L44317;}}
 L44318: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg2_938X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_939X);
  arg0K0 = 2;
  goto L25342;}
 L29832: {
  i_1678X = arg0K0;
  rest_list_1679X = arg0K1;
  if ((25 == rest_list_1679X)) {
    SvalS = new_965X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    *((long *) ((((char *) (-3 + new_965X))) + (((i_1678X)<<2)))) = (long) ((*((long *) (((char *) (-3 + rest_list_1679X))))));
    arg0K0 = (1 + i_1678X);
    arg0K1 = (*((long *) ((((char *) (-3 + rest_list_1679X))) + 4)));
    goto L29832;}}
 L30245: {
  i_1680X = arg0K0;
  if ((i_1680X < 0)) {
    SvalS = x_1435X;
    Scode_pointerS = ((Scode_pointerS) + 2);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    addr_1681X = (((char *) (-3 + x_1435X))) + (((i_1680X)<<2));S48_WRITE_BARRIER(x_1435X, addr_1681X, value_1436X);
    *((long *) addr_1681X) = (long) (value_1436X);
    arg0K0 = (-1 + i_1680X);
    goto L30245;}}
 L38616: {
  i_1682X = arg0K0;
  if ((i_1682X < 0)) {
    SvalS = vector_1440X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    *((unsigned char *) ((((char *) (-3 + vector_1440X))) + i_1682X)) = (unsigned char) (init_1000X);
    arg0K0 = (-1 + i_1682X);
    goto L38616;}}
 L38796: {
  i_1683X = arg0K0;
  if ((i_1683X < 0)) {
    SvalS = vector_1444X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    *((unsigned char *) ((((char *) (-3 + vector_1444X))) + i_1683X)) = (unsigned char) ((((unsigned char) init_1014X)));
    arg0K0 = (-1 + i_1683X);
    goto L38796;}}
 L23023: {
  bucket_1684X = arg0K0;
  arg0K0 = bucket_1684X;
  goto L23029;}
 L42646: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L38972: {
  index_1685X = arg0K0;
  temp_1686X = index_1685X < (Snumber_of_channelsS);
  if (temp_1686X) {
    goto L39087;}
  else {
    x_1687X = add_more_channels(index_1685X);
    if (x_1687X) {
      goto L39087;}
    else {
      arg0K0 = 1;
      arg0K1 = 9;
      goto L38976;}}}
 L39030: {
  v_1688X = ps_open_fd((((char *)(((char *) (-3 + arg3_1038X))))), 1, &v_1689X);
  arg0K0 = v_1688X;
  arg0K1 = v_1689X;
  goto L39043;}
 L39043: {
  channel_1690X = arg0K0;
  status_1691X = arg0K1;
  if ((status_1691X == NO_ERRORS)) {
    arg0K0 = channel_1690X;
    goto L38972;}
  else {push_exception_setupB(24, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg3_1038X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((status_1691X)<<2)));
    arg0K0 = 3;
    goto L25342;}}
 L46091: {
  waitP_1692X = arg2K0;
  start_1693X = ((arg3_1047X)>>2);
  count_1694X = ((arg2_1046X)>>2);
  v_1695X = 4 == (*((long *) (((char *) (-3 + arg5_1049X)))));
  if (v_1695X) {
    if ((3 == (3 & arg4_1048X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1048X))) + -4))))>>2))))) {
        goto L39440;}
      else {
        goto L39617;}}
    else {
      goto L39617;}}
  else {
    goto L39492;}}
 L39781: {
  y_1696X = arg0K0;
  if ((y_1696X < (start_1054X + count_1055X))) {
    goto L39821;}
  else {
    got_1697X = ps_write_fd(((((*((long *) ((((char *) (-3 + arg4_1053X))) + 8))))>>2)), ((((char *) (-3 + arg3_1052X))) + start_1054X), count_1055X, &pendingP_1698X, &status_1699X);
    if ((status_1699X == NO_ERRORS)) {
      if (pendingP_1698X) {
        addr_1700X = (((char *) (-3 + arg4_1053X))) + 20;S48_WRITE_BARRIER(arg4_1053X, addr_1700X, 5);
        *((long *) addr_1700X) = (long) (5);
        arg0K0 = 1;
        goto L39820;}
      else {
        arg0K0 = (((got_1697X)<<2));
        goto L39820;}}
    else {
      addr_1701X = s48_allocate_small(8);
      *((long *) addr_1701X) = (long) (1046);
      x_1702X = 3 + (((long) (addr_1701X + 4)));
      *((long *) (((char *) (-3 + x_1702X)))) = (long) ((((status_1699X)<<2)));
      arg0K0 = x_1702X;
      goto L39820;}}}
 L39945: {
  arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg3_1052X))) + -4))))>>8));
  goto L39781;}
 L12142: {
  arg0K0 = (*((long *) ((((char *) (-3 + channel_1064X))) + 20)));
  goto L46443;}
 L12172: {
  val_1703X = *((long *) ((((char *) (-3 + ch_1469X))) + 16));
  addr_1704X = (((char *) (-3 + prev_1470X))) + 16;S48_WRITE_BARRIER(prev_1470X, addr_1704X, val_1703X);
  *((long *) addr_1704X) = (long) (val_1703X);
  addr_1705X = (((char *) (-3 + ch_1469X))) + 16;S48_WRITE_BARRIER(ch_1469X, addr_1705X, 1);
  *((long *) addr_1705X) = (long) (1);
  arg0K0 = (*((long *) ((((char *) (-3 + ch_1469X))) + 20)));
  goto L46443;}
 L19004: {
  v_1706X = arg0K0;
  arg0K0 = (-1 + i_1475X);
  arg0K1 = v_1706X;
  goto L18990;}
 L40080: {
  if ((1 == proposal_1071X)) {
    goto L40092;}
  else {
    addr_1707X = ((char *) (-3 + proposal_1071X));S48_WRITE_BARRIER(proposal_1071X, addr_1707X, 5);
    *((long *) addr_1707X) = (long) (5);
    goto L40092;}}
 L11141: {
  i_1708X = arg0K0;
  stob_1709X = *((long *) ((((char *) (-3 + log_1484X))) + (((i_1708X)<<2))));
  if ((1 == stob_1709X)) {
    copies_1710X = *((long *) ((((char *) (-3 + proposal_1072X))) + 12));
    arg0K0 = copies_1710X;
    goto L40443;}
  else {
    value_1711X = *((long *) ((((char *) (-3 + log_1484X))) + (8 + (((i_1708X)<<2)))));
    verify_1712X = *((long *) ((((char *) (-3 + log_1484X))) + (12 + (((i_1708X)<<2)))));
    if ((29 == verify_1712X)) {
      if ((3 == (3 & stob_1709X))) {
        if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1709X))) + -4)))))) {
          goto L11193;}
        else {
          goto L40343;}}
      else {
        goto L40343;}}
    else {
      if ((verify_1712X == ((((*((unsigned char *) ((((char *) (-3 + stob_1709X))) + ((((*((long *) ((((char *) (-3 + log_1484X))) + (4 + (((i_1708X)<<2)))))))>>2))))))<<2)))) {
        if ((verify_1712X == value_1711X)) {
          goto L11193;}
        else {
          if ((3 == (3 & stob_1709X))) {
            if ((0 == (128 & (*((long *) ((((char *) (-3 + stob_1709X))) + -4)))))) {
              goto L11193;}
            else {
              goto L40343;}}
          else {
            goto L40343;}}}
      else {
        goto L40343;}}}}
 L10955: {
  arg0K0 = (4 + i_1482X);
  goto L10903;}
 L40343: {
RELEASE_PROPOSAL_LOCK();
  x_1713X = Scurrent_threadS;
  addr_1714X = (((char *) (-3 + x_1713X))) + 12;S48_WRITE_BARRIER(x_1713X, addr_1714X, 1);
  *((long *) addr_1714X) = (long) (1);
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L10610: {
  vector_1715X = arg0K0;
  if ((1 == vector_1715X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_1715X;
    goto L10573;}
  else {
    arg0K0 = vector_1715X;
    goto L10573;}}
 L16551: {
  arg0K0 = (4 + i_1495X);
  goto L16529;}
 L16725: {
  arg0K0 = (4 + i_1499X);
  goto L16705;}
 L47358: {
  minutesP_1716X = arg2K0;
  pending_interruptP_return_tag = 6;
  goto pending_interruptP;
 pending_interruptP_return_6:
  x_1717X = pending_interruptP0_return_value;
  if (x_1717X) {
    goto L47388;}
  else {
    if ((0 == (Spending_interruptsS))) {s48_wait_for_event((((arg2_1166X)>>2)), minutesP_1716X);
      goto L47388;}
    else {
      goto L47388;}}}
 L32109: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (proc_1522X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (name_1521X);
  arg0K0 = 2;
  goto L25342;}
 L46698: {
  val_1718X = arg0K0;
  SvalS = val_1718X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L33454: {
  table_1719X = arg0K0;
  n_1720X = -1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1175X))) + -4))))>>8));
  arg0K0 = 0;
  arg0K1 = 0;
  goto L22536;}
 L40861: {
  l_1721X = arg0K0;
  i_1722X = arg0K1;
  if ((i_1722X < 0)) {
    SvalS = string_1539X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    *((unsigned char *) ((((char *) (-3 + string_1539X))) + i_1722X)) = (unsigned char) ((((unsigned char) (((char) ((((*((long *) (((char *) (-3 + l_1721X))))))>>8)))))));
    arg0K0 = (*((long *) ((((char *) (-3 + l_1721X))) + 4)));
    arg0K1 = (-1 + i_1722X);
    goto L40861;}}
 L32779: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1547X);
  arg0K0 = 1;
  goto L25342;}
 L32981: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1554X);
  arg0K0 = 1;
  goto L25342;}
 L33179: {
push_exception_setupB(5, 2);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (Kchar_1559X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (port_1560X);
  arg0K0 = 2;
  goto L25342;}
 L42553: {
  arg0K0 = (*((long *) ((((char *) (-3 + stuff_1565X))) + 4)));
  goto L42547;}
 L18252: {
  if ((3 == (3 & thing_1566X))) {
    if ((16 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = (((char *)(((char *) (-3 + thing_1566X)))));
      goto L18310;}
    else {
      goto L18260;}}
  else {
    goto L18260;}}
 L42538: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, out_1227X, ignoreXX) }
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L24418: {
  SvalS = (*((long *) ((((char *) (-3 + handlers_1230X))) + (((i_1228X)<<2)))));
  obj_1723X = SvalS;
  if ((3 == (3 & obj_1723X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + obj_1723X))) + -4))))>>2))))) {
      goto L24435;}
    else {
      goto L24474;}}
  else {
    goto L24474;}}
 L24460: {
  ps_error("interrupt handler is not a vector", 0);
  goto L24418;}
 L12361: {
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (channel_1570X);
  x_1724X = *((long *) ((((char *) (-3 + channel_1570X))) + 24));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1724X);
  x_1725X = *((long *) ((((char *) (-3 + channel_1570X))) + 20));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1725X);
  n_1726X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_1726X)<<2)));
  arg0K0 = 4;
  goto L24404;}
 L12535: {
  v_1727X = arg0K0;
  Sos_signal_ring_startS = v_1727X;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((sig_1572X)<<2)));
  if (((Sos_signal_ring_readyS) == (Sos_signal_ring_startS))) {
    goto L12393;}
  else {
    Spending_interruptsS = (16 | (Spending_interruptsS));
    if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
      s48_Sstack_limitS = (Sreal_stack_limitS);
      if ((s48_Spending_eventsPS)) {
        s48_Sstack_limitS = (((char *) -1));
        goto L12393;}
      else {
        goto L12393;}}
    else {
      s48_Sstack_limitS = (((char *) -1));
      goto L12393;}}}
 L7413: {
  i_1728X = arg0K0;
  offset_1729X = arg0K1;
  if ((i_1728X == total_count_1266X)) {
    arg0K0 = offset_1729X;
    goto L54889;}
  else {
    env_1730X = *((long *) ((SstackS) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1729X)))))<<2))));
    count_1731X = *((unsigned char *) ((Scode_pointerS) + (2 + offset_1729X)));
    arg0K0 = count_1731X;
    arg0K1 = i_1728X;
    arg0K2 = (2 + offset_1729X);
    goto L7430;}}
 L54889: {
  bytes_used_1732X = arg0K0;
  SvalS = new_env_794X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1732X));
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L8211: {
  i_1733X = arg0K0;
  offset_1734X = arg0K1;
  if ((i_1733X == total_count_1275X)) {
    arg0K0 = offset_1734X;
    goto L54880;}
  else {
    env_1735X = *((long *) ((SstackS) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1734X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1734X))))))<<2))));
    index_1736X = 2 + offset_1734X;
    count_1737X = ((((*((unsigned char *) ((Scode_pointerS) + (1 + index_1736X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + index_1736X))));
    arg0K0 = count_1737X;
    arg0K1 = i_1733X;
    arg0K2 = (4 + offset_1734X);
    goto L8228;}}
 L54880: {
  bytes_used_1738X = arg0K0;
  SvalS = new_env_800X;
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1738X));
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L50153: {
  v_1739X = arg0K0;
  ScontS = (cont_1586X + (4 + (((v_1739X)<<2))));
  v_1740X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  v_1741X = s48_invoke_native_continuation((((long) (((char *) v_1740X)))), protocol_skip_1585X);
  arg0K0 = v_1741X;
  goto L50012;}
 L25703: {
  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);push_exception_setupB(5, 0);
  x_1742X = SvalS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1742X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (cont_1589X);
  arg0K0 = 2;
  goto L25342;}
 L24913: {
  v_1743X = arg0K0;
  SvalS = v_1743X;
  arg0K0 = cont_1342X;
  goto L25688;}
 L28157: {
  x_1744X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1744X);
  Scode_pointerS = ((Scode_pointerS) + 4);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L28139: {
  stack_nargs_1745X = arg0K0;
  l_1746X = arg0K1;
  if ((count_1347X == stack_nargs_1745X)) {
    arg0K0 = l_1746X;
    goto L28157;}
  else {
    x_1747X = *((long *) (((char *) (-3 + l_1746X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1747X);
    arg0K0 = (1 + stack_nargs_1745X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_1746X))) + 4)));
    goto L28139;}}
 L28062: {
  loc_1748X = arg1K0;
  arg_1749X = arg1K1;
  if ((arg_1749X < arg_top_1608X)) {
    SstackS = ((SstackS) + (0 - (((stack_nargs_1605X)<<2))));
    if ((0 == list_arg_count_1607X)) {
      goto L28049;}
    else {
      merged_arg0K0 = list_args_1606X;
      merged_arg0K1 = list_arg_count_1607X;
      push_list_return_tag = 3;
      goto push_list;
     push_list_return_3:
      goto L28049;}}
  else {
    *((long *) loc_1748X) = (long) ((*((long *) arg_1749X)));
    arg1K0 = (loc_1748X + -4);
    arg1K1 = (arg_1749X + -4);
    goto L28062;}}
 L15439: {
  if ((3 == (3 & x_869X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + x_869X))) + -4))))>>2))))) {
      arg0K0 = 5;
      goto L51719;}
    else {
      arg0K0 = 1;
      goto L51719;}}
  else {
    arg0K0 = 1;
    goto L51719;}}
 L41779: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41922: {
  if ((3 == (3 & n_1357X))) {
    if ((18 == (31 & ((((*((long *) ((((char *) (-3 + n_1357X))) + -4))))>>2))))) {
      goto L41931;}
    else {
      goto L41932;}}
  else {
    goto L41932;}}
 L9213: {
  if ((536870911 < lo_c_1616X)) {
    val_1750X = integer_multiply(arg2_877X, y_878X);
    SvalS = val_1750X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    if ((lo_c_1616X < 0)) {
      val_1751X = integer_multiply(arg2_877X, y_878X);
      SvalS = val_1751X;
      Scode_pointerS = ((Scode_pointerS) + 1);
      arg1K0 = (Scode_pointerS);
      goto L26704;}
    else {
      if ((8192 < mid_c_1619X)) {
        val_1752X = integer_multiply(arg2_877X, y_878X);
        SvalS = val_1752X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        if ((a_879X < 0)) {
          if ((b_880X < 0)) {s48_make_availableAgc(16);
            if ((536870911 < c_1620X)) {
              goto L53103;}
            else {
              if ((c_1620X < -536870912)) {
                goto L53103;}
              else {
                arg0K0 = (((c_1620X)<<2));
                goto L53098;}}}
          else {
            goto L9241;}}
        else {
          if ((b_880X < 0)) {
            goto L9241;}
          else {s48_make_availableAgc(16);
            if ((536870911 < c_1620X)) {
              goto L53125;}
            else {
              if ((c_1620X < -536870912)) {
                goto L53125;}
              else {
                arg0K0 = (((c_1620X)<<2));
                goto L53120;}}}}}}}}
 L53206: {
  v_1753X = (char *) s48_long_to_bignum(c_1625X);
  v_1754X = enter_bignum(v_1753X);
  arg0K0 = v_1754X;
  goto L53201;}
 L53201: {
  val_1755X = arg0K0;
  SvalS = val_1755X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L9475: {
  x_1756X = 0 - c_1625X;s48_make_availableAgc(16);
  if ((536870911 < x_1756X)) {
    goto L53184;}
  else {
    if ((x_1756X < -536870912)) {
      goto L53184;}
    else {
      arg0K0 = (((x_1756X)<<2));
      goto L53179;}}}
 L53228: {
  v_1757X = (char *) s48_long_to_bignum(c_1625X);
  v_1758X = enter_bignum(v_1757X);
  arg0K0 = v_1758X;
  goto L53223;}
 L53223: {
  val_1759X = arg0K0;
  SvalS = val_1759X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L16877: {
  length0_1760X = arg0K0;
  extra0_1761X = arg0K1;
  if ((0 == (3 & y_885X))) {
    arg0K0 = 3;
    goto L16885;}
  else {
    arg0K0 = 0;
    goto L16885;}}
 L35588: {
  val_1762X = arg0K0;
  SvalS = val_1762X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L35848: {
  val_1763X = arg0K0;
  SvalS = val_1763X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36171: {
  val_1764X = arg0K0;
  SvalS = val_1764X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36494: {
  val_1765X = arg0K0;
  SvalS = val_1765X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L36788: {
  val_1766X = arg0K0;
  SvalS = val_1766X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L10166: {
  if ((536870911 < c_1643X)) {
    val_1767X = Hinteger_op7480(arg2_898X, y_899X);
    SvalS = val_1767X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    SvalS = (((c_1643X)<<2));
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L10165: {
  SvalS = ((((0 - c_1643X))<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L37298: {
  n_1768X = arg0K0;
  SvalS = (((n_1768X)<<2));
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L44272: {
  v_1769X = (char *) s48_long_to_bignum(x_1648X);
  v_1770X = enter_bignum(v_1769X);
  arg0K0 = v_1770X;
  goto L44267;}
 L44267: {
  val_1771X = arg0K0;
  SvalS = val_1771X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L20508: {
  x_1772X = arg1K0;
  v_1773X = s48_bignum_test(x_1772X);
  if ((-1 == v_1773X)) {
    v_1774X = (char *) s48_bignum_negate(x_1772X);
    arg1K0 = v_1774X;
    goto L20510;}
  else {
    arg1K0 = x_1772X;
    goto L20510;}}
 L44383: {
  x_1775X = arg1K0;
  external_bignum_1776X = (char *) s48_bignum_arithmetic_shift(x_1775X, y_1666X);
  v_1777X = s48_bignum_fits_in_word_p(external_bignum_1776X, 30, 1);
  if (v_1777X) {
    n_1778X = s48_bignum_to_long(external_bignum_1776X);
    arg0K0 = (((n_1778X)<<2));
    goto L44311;}
  else {
    v_1779X = enter_bignum(external_bignum_1776X);
    arg0K0 = v_1779X;
    goto L44311;}}
 L44317: {
  val_1780X = arg0K0;
  SvalS = val_1780X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L23029: {
  foo_1781X = arg0K0;
  if ((1 == foo_1781X)) {
    if ((3 == (3 & bucket_1684X))) {
      arg0K0 = (-4 & bucket_1684X);
      goto L23034;}
    else {
      arg0K0 = bucket_1684X;
      goto L23034;}}
  else {
    s2_1782X = *((long *) (((char *) (-3 + foo_1781X))));
    len_1783X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + string_1028X))) + -4))))>>8);
    if ((len_1783X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1782X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_1782X))), (void *)(((char *) (-3 + string_1028X))),len_1783X)))) {
        arg0K0 = foo_1781X;
        goto L34891;}
      else {
        goto L23049;}}
    else {
      goto L23049;}}}
 L39087: {
  if ((1 == (*((Svm_channelsS) + index_1685X)))) {
    channel_1784X = make_channel((((mode_1039X)<<2)), arg3_1038X, (((index_1685X)<<2)), close_silentlyP_1040X, 1, 1, 1, 0);
    *((Svm_channelsS) + index_1685X) = channel_1784X;
    arg0K0 = channel_1784X;
    arg0K1 = 9;
    goto L38976;}
  else {
    arg0K0 = 1;
    arg0K1 = 11;
    goto L38976;}}
 L38976: {
  channel_1785X = arg0K0;
  reason_1786X = arg0K1;
  if ((1 == channel_1785X)) {
    if ((3 == (3 & arg3_1038X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg3_1038X))) + -4))))>>2))))) {
        if ((1 == mode_1039X)) {
          goto L39121;}
        else {
          if ((3 == mode_1039X)) {
            goto L39121;}
          else {
            v_1787X = ps_close_fd(index_1685X);
            arg0K0 = v_1787X;
            goto L39116;}}}
      else {push_exception_setupB(reason_1786X, 1);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) (arg3_1038X);
        SstackS = ((SstackS) + -4);
        *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
        arg0K0 = 2;
        goto L25342;}}
    else {push_exception_setupB(reason_1786X, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (arg3_1038X);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
      arg0K0 = 2;
      goto L25342;}}
  else {
    SvalS = channel_1785X;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}}
 L39440: {
  if ((3 == (3 & arg4_1048X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + arg4_1048X))) + -4)))))) {
      if ((3 == (3 & arg4_1048X))) {
        if ((16 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1048X))) + -4))))>>2))))) {
          arg0K0 = (-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1048X))) + -4))))>>8)));
          goto L39447;}
        else {
          goto L39643;}}
      else {
        goto L39643;}}
    else {
      goto L39492;}}
  else {
    goto L39492;}}
 L39617: {
  if ((3 == (3 & arg4_1048X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + arg4_1048X))) + -4))))>>2))))) {
      goto L39440;}
    else {
      goto L39492;}}
  else {
    goto L39492;}}
 L39492: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg5_1049X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (arg4_1048X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((start_1693X)<<2)));
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((count_1694X)<<2)));
  if (waitP_1692X) {
    arg0K0 = 5;
    goto L39508;}
  else {
    arg0K0 = 1;
    goto L39508;}}
 L39820: {
  val_1788X = arg0K0;
  SvalS = val_1788X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L40092: {
  x_1789X = Scurrent_threadS;
  addr_1790X = (((char *) (-3 + x_1789X))) + 12;S48_WRITE_BARRIER(x_1789X, addr_1790X, proposal_1071X);
  *((long *) addr_1790X) = (long) (proposal_1071X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L40443: {
  copies_1791X = arg0K0;
  if ((1 == copies_1791X)) {
    log_1792X = *((long *) ((((char *) (-3 + proposal_1072X))) + 4));
    arg0K0 = 0;
    goto L9945;}
  else {
    thing_1793X = *((long *) ((((char *) (-3 + copies_1791X))) + 8));
    if ((3 == (3 & thing_1793X))) {
      if ((0 == (128 & (*((long *) ((((char *) (-3 + thing_1793X))) + -4)))))) {
        arg0K0 = (*((long *) ((((char *) (-3 + copies_1791X))) + 20)));
        goto L40443;}
      else {
        goto L40343;}}
    else {
      goto L40343;}}}
 L11193: {
  arg0K0 = (4 + i_1708X);
  goto L11141;}
 L10573: {
  entry_1794X = arg0K0;
  proposal_1795X = *((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12));
  value_1796X = Stemp0S;
  Stemp0S = 1;
  addr_1797X = ((char *) (-3 + entry_1794X));S48_WRITE_BARRIER(entry_1794X, addr_1797X, value_1796X);
  *((long *) addr_1797X) = (long) (value_1796X);
  addr_1798X = (((char *) (-3 + entry_1794X))) + 4;S48_WRITE_BARRIER(entry_1794X, addr_1798X, from_index_1490X);
  *((long *) addr_1798X) = (long) (from_index_1490X);
  value_1799X = Stemp1S;
  Stemp1S = 1;
  addr_1800X = (((char *) (-3 + entry_1794X))) + 8;S48_WRITE_BARRIER(entry_1794X, addr_1800X, value_1799X);
  *((long *) addr_1800X) = (long) (value_1799X);
  addr_1801X = (((char *) (-3 + entry_1794X))) + 12;S48_WRITE_BARRIER(entry_1794X, addr_1801X, to_index_1491X);
  *((long *) addr_1801X) = (long) (to_index_1491X);
  addr_1802X = (((char *) (-3 + entry_1794X))) + 16;S48_WRITE_BARRIER(entry_1794X, addr_1802X, count_1492X);
  *((long *) addr_1802X) = (long) (count_1492X);
  value_1803X = *((long *) ((((char *) (-3 + proposal_1795X))) + 12));
  addr_1804X = (((char *) (-3 + entry_1794X))) + 20;S48_WRITE_BARRIER(entry_1794X, addr_1804X, value_1803X);
  *((long *) addr_1804X) = (long) (value_1803X);
  addr_1805X = (((char *) (-3 + proposal_1795X))) + 12;S48_WRITE_BARRIER(proposal_1795X, addr_1805X, entry_1794X);
  *((long *) addr_1805X) = (long) (entry_1794X);
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 2);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L47388: {
  SvalS = 13;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L22536: {
  i_1806X = arg0K0;
  h_1807X = arg0K1;
  if ((i_1806X < n_1720X)) {
    arg0K0 = (1 + i_1806X);
    arg0K1 = (h_1807X + (((unsigned char) (((char) (*((unsigned char *) ((((char *) (-3 + arg2_1175X))) + i_1806X))))))));
    goto L22536;}
  else {
    index_1808X = 1023 & h_1807X;
    link_1809X = *((long *) ((((char *) (-3 + table_1719X))) + (((index_1808X)<<2))));
    if ((0 == (3 & link_1809X))) {
      arg0K0 = (3 + (-4 & link_1809X));
      goto L22491;}
    else {
      arg0K0 = link_1809X;
      goto L22491;}}}
 L18310: {
  v_1810X = arg3K0;
  ps_write_string(v_1810X, out_1227X);
  goto L42553;}
 L18260: {
  if ((3 == (3 & thing_1566X))) {
    if ((1 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = (((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + thing_1566X))))))))));
      goto L18310;}
    else {
      goto L18268;}}
  else {
    goto L18268;}}
 L24435: {
  Senabled_interruptsS = 0;
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L24437;}
    else {
      goto L24437;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L24437;}}
 L24474: {
  ps_error("interrupt handler is not a closure", 1, i_1228X);
  goto L24435;}
 L12393: {
  n_1811X = Senabled_interruptsS;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) ((((n_1811X)<<2)));
  arg0K0 = 2;
  goto L24404;}
 L7430: {
  count_1812X = arg0K0;
  i_1813X = arg0K1;
  offset_1814X = arg0K2;
  if ((0 == count_1812X)) {
    arg0K0 = i_1813X;
    arg0K1 = offset_1814X;
    goto L7413;}
  else {
    value_1815X = *((long *) ((((char *) (-3 + env_1730X))) + ((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1814X)))))<<2))));
    addr_1816X = (((char *) (-3 + new_env_1263X))) + (((i_1813X)<<2));S48_WRITE_BARRIER(new_env_1263X, addr_1816X, value_1815X);
    *((long *) addr_1816X) = (long) (value_1815X);
    arg0K0 = (-1 + count_1812X);
    arg0K1 = (1 + i_1813X);
    arg0K2 = (1 + offset_1814X);
    goto L7430;}}
 L8228: {
  count_1817X = arg0K0;
  i_1818X = arg0K1;
  offset_1819X = arg0K2;
  if ((0 == count_1817X)) {
    arg0K0 = i_1818X;
    arg0K1 = offset_1819X;
    goto L8211;}
  else {
    value_1820X = *((long *) ((((char *) (-3 + env_1735X))) + ((((((((*((unsigned char *) ((Scode_pointerS) + (1 + offset_1819X)))))<<8)) + (*((unsigned char *) ((Scode_pointerS) + (2 + offset_1819X))))))<<2))));
    addr_1821X = (((char *) (-3 + new_env_1272X))) + (((i_1818X)<<2));S48_WRITE_BARRIER(new_env_1272X, addr_1821X, value_1820X);
    *((long *) addr_1821X) = (long) (value_1820X);
    arg0K0 = (-1 + count_1817X);
    arg0K1 = (1 + i_1818X);
    arg0K2 = (2 + offset_1819X);
    goto L8228;}}
 L28049: {
  Scode_pointerS = ((Scode_pointerS) + (1 + bytes_used_1604X));
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L41932: {
  if ((3 == (3 & n_1357X))) {
    if ((11 == (31 & ((((*((long *) ((((char *) (-3 + n_1357X))) + -4))))>>2))))) {push_exception_setupB(5, 1);
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (n_1357X);
      arg0K0 = 1;
      goto L25342;}
    else {
      goto L41936;}}
  else {
    goto L41936;}}
 L53103: {
  v_1822X = (char *) s48_long_to_bignum(c_1620X);
  v_1823X = enter_bignum(v_1822X);
  arg0K0 = v_1823X;
  goto L53098;}
 L53098: {
  val_1824X = arg0K0;
  SvalS = val_1824X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L9241: {
  x_1825X = 0 - c_1620X;s48_make_availableAgc(16);
  if ((536870911 < x_1825X)) {
    goto L53081;}
  else {
    if ((x_1825X < -536870912)) {
      goto L53081;}
    else {
      arg0K0 = (((x_1825X)<<2));
      goto L53076;}}}
 L53125: {
  v_1826X = (char *) s48_long_to_bignum(c_1620X);
  v_1827X = enter_bignum(v_1826X);
  arg0K0 = v_1827X;
  goto L53120;}
 L53120: {
  val_1828X = arg0K0;
  SvalS = val_1828X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L53184: {
  v_1829X = (char *) s48_long_to_bignum(x_1756X);
  v_1830X = enter_bignum(v_1829X);
  arg0K0 = v_1830X;
  goto L53179;}
 L53179: {
  val_1831X = arg0K0;
  SvalS = val_1831X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L16885: {
  extra1_1832X = arg0K0;
  Stemp0S = arg2_884X;
  Stemp1S = y_885X;s48_make_availableAgc(((((((6 + (-2 & ((((7 + (((length0_1760X)<<2))))>>1)))) + extra0_1761X) + extra1_1832X))<<2)));
  value_1833X = Stemp0S;
  Stemp0S = 1;
  if ((0 == (3 & value_1833X))) {
    v_1834X = (char *) s48_long_to_bignum((((value_1833X)>>2)));
    arg1K0 = v_1834X;
    goto L20344;}
  else {
    arg1K0 = (((char *) (-3 + value_1833X)));
    goto L20344;}}
 L20510: {
  external_bignum_1835X = arg1K0;
  v_1836X = s48_bignum_fits_in_word_p(external_bignum_1835X, 30, 1);
  if (v_1836X) {
    n_1837X = s48_bignum_to_long(external_bignum_1835X);
    arg0K0 = (((n_1837X)<<2));
    goto L44249;}
  else {
    val_1838X = enter_bignum(external_bignum_1835X);
    arg0K0 = val_1838X;
    goto L44249;}}
 L44311: {
  val_1839X = arg0K0;
  SvalS = val_1839X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L23034: {
  b_1840X = arg0K0;
  addr_1841X = s48_allocate_small(12);
  *((long *) addr_1841X) = (long) (2054);
  x_1842X = 3 + (((long) (addr_1841X + 4)));
  *((long *) (((char *) (-3 + x_1842X)))) = (long) (string_1028X);
  *((long *) ((((char *) (-3 + x_1842X))) + 4)) = (long) (b_1840X);
  if ((3 == (3 & x_1842X))) {
    arg0K0 = (-4 & x_1842X);
    goto L23040;}
  else {
    arg0K0 = x_1842X;
    goto L23040;}}
 L34891: {
  val_1843X = arg0K0;
  SvalS = val_1843X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L23049: {
  link_1844X = *((long *) ((((char *) (-3 + foo_1781X))) + 4));
  if ((0 == (3 & link_1844X))) {
    arg0K0 = (3 + (-4 & link_1844X));
    goto L23029;}
  else {
    arg0K0 = link_1844X;
    goto L23029;}}
 L39121: {
  v_1845X = ps_close_fd(index_1685X);
  arg0K0 = v_1845X;
  goto L39116;}
 L39116: {
  status_1846X = arg0K0;
  if ((status_1846X == NO_ERRORS)) {push_exception_setupB(reason_1786X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg3_1038X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
    arg0K0 = 2;
    goto L25342;}
  else {channel_close_error(status_1846X, index_1685X, arg3_1038X);push_exception_setupB(reason_1786X, 1);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (arg3_1038X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) ((((mode_1039X)<<2)));
    arg0K0 = 2;
    goto L25342;}}
 L39447: {
  y_1847X = arg0K0;
  if ((y_1847X < (start_1693X + count_1694X))) {
    goto L39492;}
  else {
    got_1848X = ps_read_fd(((((*((long *) ((((char *) (-3 + arg5_1049X))) + 8))))>>2)), ((((char *) (-3 + arg4_1048X))) + start_1693X), count_1694X, waitP_1692X, &eofP_1849X, &pendingP_1850X, &status_1851X);
    if ((status_1851X == NO_ERRORS)) {
      if (eofP_1849X) {
        arg0K0 = 21;
        goto L39491;}
      else {
        if (pendingP_1850X) {
          addr_1852X = (((char *) (-3 + arg5_1049X))) + 20;S48_WRITE_BARRIER(arg5_1049X, addr_1852X, 5);
          *((long *) addr_1852X) = (long) (5);
          arg0K0 = 1;
          goto L39491;}
        else {
          arg0K0 = (((got_1848X)<<2));
          goto L39491;}}}
    else {
      addr_1853X = s48_allocate_small(8);
      *((long *) addr_1853X) = (long) (1046);
      x_1854X = 3 + (((long) (addr_1853X + 4)));
      *((long *) (((char *) (-3 + x_1854X)))) = (long) ((((status_1851X)<<2)));
      arg0K0 = x_1854X;
      goto L39491;}}}
 L39643: {
  arg0K0 = ((long)(((unsigned long)(*((long *) ((((char *) (-3 + arg4_1048X))) + -4))))>>8));
  goto L39447;}
 L39508: {
  x_1855X = arg0K0;
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1855X);
  arg0K0 = 5;
  goto L25342;}
 L9945: {
  i_1856X = arg0K0;
  stob_1857X = *((long *) ((((char *) (-3 + log_1792X))) + (((i_1856X)<<2))));
  if ((1 == stob_1857X)) {
    log_1858X = *((long *) ((((char *) (-3 + proposal_1072X))) + 8));
    arg0K0 = 0;
    goto L13121;}
  else {
    value_1859X = *((long *) ((((char *) (-3 + log_1792X))) + (8 + (((i_1856X)<<2)))));
    verify_1860X = *((long *) ((((char *) (-3 + log_1792X))) + (12 + (((i_1856X)<<2)))));
    if ((verify_1860X == value_1859X)) {
      goto L9977;}
    else {
      addr_1861X = (((char *) (-3 + stob_1857X))) + (-4 & (*((long *) ((((char *) (-3 + log_1792X))) + (4 + (((i_1856X)<<2)))))));S48_WRITE_BARRIER(stob_1857X, addr_1861X, value_1859X);
      *((long *) addr_1861X) = (long) (value_1859X);
      goto L9977;}}}
 L22491: {
  bucket_1862X = arg0K0;
  arg0K0 = 1;
  arg0K1 = bucket_1862X;
  goto L22498;}
 L18268: {
  if ((1 == thing_1566X)) {
    goto L18271;}
  else {
    if ((5 == thing_1566X)) {
      goto L18271;}
    else {
      if ((25 == thing_1566X)) {
        arg3K0 = "()";
        goto L18310;}
      else {
        if ((3 == (3 & thing_1566X))) {
          if ((0 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
            arg3K0 = "(...)";
            goto L18310;}
          else {
            goto L18284;}}
        else {
          goto L18284;}}}}}
 L24437: {
  arg0K0 = arg_count_1569X;
  arg0K1 = 25;
  arg0K2 = 0;
  arg0K3 = (-2 - i_1228X);
  goto L50802;}
 L41936: {
  SvalS = 1;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L53081: {
  v_1863X = (char *) s48_long_to_bignum(x_1825X);
  v_1864X = enter_bignum(v_1863X);
  arg0K0 = v_1864X;
  goto L53076;}
 L53076: {
  val_1865X = arg0K0;
  SvalS = val_1865X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L20344: {
  x_1866X = arg1K0;
  value_1867X = Stemp1S;
  Stemp1S = 1;
  if ((0 == (3 & value_1867X))) {
    v_1868X = (char *) s48_long_to_bignum((((value_1867X)>>2)));
    arg1K0 = v_1868X;
    goto L20348;}
  else {
    arg1K0 = (((char *) (-3 + value_1867X)));
    goto L20348;}}
 L44249: {
  val_1869X = arg0K0;
  SvalS = val_1869X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L23040: {
  value_1870X = arg0K0;
  addr_1871X = (((char *) (-3 + table_1027X))) + (((index_1451X)<<2));S48_WRITE_BARRIER(table_1027X, addr_1871X, value_1870X);
  *((long *) addr_1871X) = (long) (value_1870X);
  arg0K0 = x_1842X;
  goto L34891;}
 L39491: {
  val_1872X = arg0K0;
  SvalS = val_1872X;
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L13121: {
  i_1873X = arg0K0;
  stob_1874X = *((long *) ((((char *) (-3 + log_1858X))) + (((i_1873X)<<2))));
  if ((1 == stob_1874X)) {
    copies_1875X = *((long *) ((((char *) (-3 + proposal_1072X))) + 12));
    arg0K0 = copies_1875X;
    goto L13036;}
  else {
    value_1876X = *((long *) ((((char *) (-3 + log_1858X))) + (8 + (((i_1873X)<<2)))));
    verify_1877X = *((long *) ((((char *) (-3 + log_1858X))) + (12 + (((i_1873X)<<2)))));
    if ((verify_1877X == value_1876X)) {
      goto L13153;}
    else {
      *((unsigned char *) ((((char *) (-3 + stob_1874X))) + ((((*((long *) ((((char *) (-3 + log_1858X))) + (4 + (((i_1873X)<<2)))))))>>2)))) = (unsigned char) ((((value_1876X)>>2)));
      goto L13153;}}}
 L9977: {
  arg0K0 = (4 + i_1856X);
  goto L9945;}
 L22498: {
  previous_foo_1878X = arg0K0;
  foo_1879X = arg0K1;
  if ((1 == foo_1879X)) {
    goto L33456;}
  else {
    s2_1880X = *((long *) (((char *) (-3 + foo_1879X))));
    len_1881X = (long)(((unsigned long)(*((long *) ((((char *) (-3 + arg2_1175X))) + -4))))>>8);
    if ((len_1881X == ((long)(((unsigned long)(*((long *) ((((char *) (-3 + s2_1880X))) + -4))))>>8)))) {
      if (((!memcmp((void *)(((char *) (-3 + s2_1880X))), (void *)(((char *) (-3 + arg2_1175X))),len_1881X)))) {
        if ((1 == previous_foo_1878X)) {
          value_1882X = *((long *) ((((char *) (-3 + foo_1879X))) + 12));
          addr_1883X = (((char *) (-3 + table_1719X))) + (((index_1808X)<<2));S48_WRITE_BARRIER(table_1719X, addr_1883X, value_1882X);
          *((long *) addr_1883X) = (long) (value_1882X);
          goto L33456;}
        else {
          val_1884X = *((long *) ((((char *) (-3 + foo_1879X))) + 12));
          addr_1885X = (((char *) (-3 + previous_foo_1878X))) + 12;S48_WRITE_BARRIER(previous_foo_1878X, addr_1885X, val_1884X);
          *((long *) addr_1885X) = (long) (val_1884X);
          goto L33456;}}
      else {
        goto L22566;}}
    else {
      goto L22566;}}}
 L18271: {
  if ((1 == thing_1566X)) {
    arg3K0 = "#f";
    goto L18310;}
  else {
    arg3K0 = "#t";
    goto L18310;}}
 L18284: {
  if ((3 == (3 & thing_1566X))) {
    if ((2 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#(...)";
      goto L18310;}
    else {
      goto L18288;}}
  else {
    goto L18288;}}
 L20348: {
  y_1886X = arg1K0;
  div_by_zeroP_1887X = s48_bignum_divide(x_1866X, y_1886X, &quot_1888X, &rem_1889X);
  if (div_by_zeroP_1887X) {
    v_1890X = s48_bignum_fits_in_word_p(y_1886X, 30, 1);
    if (v_1890X) {
      n_1891X = s48_bignum_to_long(y_1886X);
      arg0K0 = (((n_1891X)<<2));
      goto L20370;}
    else {
      v_1892X = enter_bignum(y_1886X);
      arg0K0 = v_1892X;
      goto L20370;}}
  else {
    v_1893X = s48_bignum_fits_in_word_p(y_1886X, 30, 1);
    if (v_1893X) {
      n_1894X = s48_bignum_to_long(y_1886X);
      arg0K0 = (((n_1894X)<<2));
      goto L20379;}
    else {
      v_1895X = enter_bignum(y_1886X);
      arg0K0 = v_1895X;
      goto L20379;}}}
 L13036: {
  copies_1896X = arg0K0;
  if ((1 == copies_1896X)) {
    value_1897X = Sempty_logS;
    addr_1898X = (((char *) (-3 + proposal_1072X))) + 4;S48_WRITE_BARRIER(proposal_1072X, addr_1898X, value_1897X);
    *((long *) addr_1898X) = (long) (value_1897X);
    value_1899X = Sempty_logS;
    addr_1900X = (((char *) (-3 + proposal_1072X))) + 8;S48_WRITE_BARRIER(proposal_1072X, addr_1900X, value_1899X);
    *((long *) addr_1900X) = (long) (value_1899X);
    addr_1901X = (((char *) (-3 + proposal_1072X))) + 12;S48_WRITE_BARRIER(proposal_1072X, addr_1901X, 1);
    *((long *) addr_1901X) = (long) (1);RELEASE_PROPOSAL_LOCK();
    x_1902X = Scurrent_threadS;
    addr_1903X = (((char *) (-3 + x_1902X))) + 12;S48_WRITE_BARRIER(x_1902X, addr_1903X, 1);
    *((long *) addr_1903X) = (long) (1);
    SvalS = 5;
    Scode_pointerS = ((Scode_pointerS) + 1);
    arg1K0 = (Scode_pointerS);
    goto L26704;}
  else {
    stob_1904X = *((long *) ((((char *) (-3 + copies_1896X))) + 8));
    v_1905X = (((*((long *) ((((char *) (-3 + copies_1896X))) + 12))))>>2);
    stob_1906X = *((long *) (((char *) (-3 + copies_1896X))));
    v_1907X = (((*((long *) ((((char *) (-3 + copies_1896X))) + 4))))>>2);
    v_1908X = (((*((long *) ((((char *) (-3 + copies_1896X))) + 16))))>>2);
    memmove((void *)((((char *) (-3 + stob_1904X))) + v_1905X), (void *)((((char *) (-3 + stob_1906X))) + v_1907X),v_1908X);
    arg0K0 = (*((long *) ((((char *) (-3 + copies_1896X))) + 20)));
    goto L13036;}}
 L13153: {
  arg0K0 = (4 + i_1873X);
  goto L13121;}
 L33456: {
  Scode_pointerS = ((Scode_pointerS) + 1);
  arg1K0 = (Scode_pointerS);
  goto L26704;}
 L22566: {
  link_1909X = *((long *) ((((char *) (-3 + foo_1879X))) + 12));
  if ((0 == (3 & link_1909X))) {
    arg0K0 = foo_1879X;
    arg0K1 = (3 + (-4 & link_1909X));
    goto L22498;}
  else {
    arg0K0 = foo_1879X;
    arg0K1 = link_1909X;
    goto L22498;}}
 L18288: {
  if ((3 == (3 & thing_1566X))) {
    if ((3 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#{procedure}";
      goto L18310;}
    else {
      goto L18292;}}
  else {
    goto L18292;}}
 L20370: {
  v_1910X = arg0K0;
  v_1911X = s48_bignum_fits_in_word_p(x_1866X, 30, 1);
  if (v_1911X) {
    n_1912X = s48_bignum_to_long(x_1866X);
    arg2K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = (((n_1912X)<<2));
    arg0K4 = v_1910X;
    goto L43927;}
  else {
    v_1913X = enter_bignum(x_1866X);
    arg2K0 = 1;
    arg0K1 = 0;
    arg0K2 = 0;
    arg0K3 = v_1913X;
    arg0K4 = v_1910X;
    goto L43927;}}
 L20379: {
  v_1914X = arg0K0;
  v_1915X = s48_bignum_fits_in_word_p(rem_1889X, 30, 1);
  if (v_1915X) {
    n_1916X = s48_bignum_to_long(rem_1889X);
    arg0K0 = (((n_1916X)<<2));
    goto L20375;}
  else {
    v_1917X = enter_bignum(rem_1889X);
    arg0K0 = v_1917X;
    goto L20375;}}
 L18292: {
  if ((3 == (3 & thing_1566X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#{template}";
      goto L18310;}
    else {
      goto L18296;}}
  else {
    goto L18296;}}
 L43927: {
  div_by_zeroP_1918X = arg2K0;
  quot_1919X = arg0K1;
  rem_1920X = arg0K2;
  x_1921X = arg0K3;
  y_1922X = arg0K4;
  if (div_by_zeroP_1918X) {
    goto L43950;}
  else {
    if ((0 == (3 & rem_1920X))) {
      if ((0 == rem_1920X)) {
        SvalS = quot_1919X;
        Scode_pointerS = ((Scode_pointerS) + 1);
        arg1K0 = (Scode_pointerS);
        goto L26704;}
      else {
        goto L43950;}}
    else {
      goto L43950;}}}
 L20375: {
  v_1923X = arg0K0;
  v_1924X = s48_bignum_fits_in_word_p(quot_1888X, 30, 1);
  if (v_1924X) {
    n_1925X = s48_bignum_to_long(quot_1888X);
    arg0K0 = (((n_1925X)<<2));
    goto L20373;}
  else {
    v_1926X = enter_bignum(quot_1888X);
    arg0K0 = v_1926X;
    goto L20373;}}
 L18296: {
  if ((3 == (3 & thing_1566X))) {
    if ((4 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#{location}";
      goto L18310;}
    else {
      goto L18300;}}
  else {
    goto L18300;}}
 L43950: {
push_exception_setupB(5, 1);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (x_1921X);
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (y_1922X);
  arg0K0 = 2;
  goto L25342;}
 L20373: {
  v_1927X = arg0K0;
  v_1928X = s48_bignum_fits_in_word_p(x_1866X, 30, 1);
  if (v_1928X) {
    n_1929X = s48_bignum_to_long(x_1866X);
    arg2K0 = 0;
    arg0K1 = v_1927X;
    arg0K2 = v_1923X;
    arg0K3 = (((n_1929X)<<2));
    arg0K4 = v_1914X;
    goto L43927;}
  else {
    v_1930X = enter_bignum(x_1866X);
    arg2K0 = 0;
    arg0K1 = v_1927X;
    arg0K2 = v_1923X;
    arg0K3 = v_1930X;
    arg0K4 = v_1914X;
    goto L43927;}}
 L18300: {
  if ((3 == (3 & thing_1566X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#{code-vector}";
      goto L18310;}
    else {
      goto L18304;}}
  else {
    goto L18304;}}
 L18304: {
  if ((3 == (3 & thing_1566X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + thing_1566X))) + -4))))>>2))))) {
      arg3K0 = "#{continuation}";
      goto L18310;}
    else {
      arg3K0 = "???";
      goto L18310;}}
  else {
    arg3K0 = "???";
    goto L18310;}}
 loseD0: {
  message_678X = merged_arg3K0;{
  ps_write_string("Template UIDs: ", (stderr));
  current_code_1931X = current_code_vector();
  out_1932X = stderr;
  merged_arg1K0 = (SstackS);
  merged_arg0K1 = (((((ScontS) - (SstackS)))>>2));
  merged_arg0K2 = current_code_1931X;
  find_template_return_tag = 0;
  goto find_template;
 find_template_return_0:
  template_1933X = find_template0_return_value;
  merged_arg0K0 = template_1933X;
  merged_arg2K1 = 0;
  merged_arg4K2 = out_1932X;
  maybe_write_template_return_tag = 0;
  goto maybe_write_template;
 maybe_write_template_return_0:
  not_firstP_1934X = maybe_write_template0_return_value;
  arg1K0 = (ScontS);
  arg2K1 = not_firstP_1934X;
  goto L22432;}
 L22432: {
  cont_1935X = arg1K0;
  not_firstP_1936X = arg2K1;
  if ((cont_1935X == (Sbottom_of_stackS))) {
    cont_1937X = Sheap_continuationS;
    arg0K0 = cont_1937X;
    arg2K1 = not_firstP_1936X;
    goto L21229;}
  else {
    code_pointer_1938X = ((char *) (*((long *) cont_1935X)));
    pointer_1939X = code_pointer_1938X + -5;
    v_1940X = 3 + (((long) (code_pointer_1938X + (0 - (((((*((unsigned char *) pointer_1939X)))<<8)) + (*((unsigned char *) (pointer_1939X + 1))))))));
    pointer_1941X = (((char *) (*((long *) cont_1935X)))) + -2;
    size_1942X = ((((*((unsigned char *) pointer_1941X)))<<8)) + (*((unsigned char *) (pointer_1941X + 1)));
    if ((65535 == size_1942X)) {
      arg0K0 = ((((*((long *) (cont_1935X + 4))))>>2));
      goto L17666;}
    else {
      arg0K0 = size_1942X;
      goto L17666;}}}
 L21229: {
  cont_1943X = arg0K0;
  not_firstP_1944X = arg2K1;
  if ((3 == (3 & cont_1943X))) {
    if ((10 == (31 & ((((*((long *) ((((char *) (-3 + cont_1943X))) + -4))))>>2))))) {
      merged_arg1K0 = (((char *) (-3 + cont_1943X)));
      merged_arg0K1 = ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_1943X))) + -4))))>>8))))>>2));
      merged_arg0K2 = (*((long *) ((((char *) (-3 + cont_1943X))) + 4)));
      find_template_return_tag = 1;
      goto find_template;
     find_template_return_1:
      v_1945X = find_template0_return_value;
      merged_arg0K0 = v_1945X;
      merged_arg2K1 = not_firstP_1944X;
      merged_arg4K2 = out_1932X;
      maybe_write_template_return_tag = 1;
      goto maybe_write_template;
     maybe_write_template_return_1:
      v_1946X = maybe_write_template0_return_value;
      arg0K0 = (*((long *) ((((char *) (-3 + cont_1943X))) + 8)));
      arg2K1 = v_1946X;
      goto L21229;}
    else {
      goto L25440;}}
  else {
    goto L25440;}}
 L17666: {
  v_1947X = arg0K0;
  merged_arg1K0 = (cont_1935X + 4);
  merged_arg0K1 = v_1947X;
  merged_arg0K2 = v_1940X;
  find_template_return_tag = 2;
  goto find_template;
 find_template_return_2:
  v_1948X = find_template0_return_value;
  merged_arg0K0 = v_1948X;
  merged_arg2K1 = not_firstP_1936X;
  merged_arg4K2 = out_1932X;
  maybe_write_template_return_tag = 2;
  goto maybe_write_template;
 maybe_write_template_return_2:
  v_1949X = maybe_write_template0_return_value;
  pointer_1950X = (((char *) (*((long *) cont_1935X)))) + -2;
  size_1951X = ((((*((unsigned char *) pointer_1950X)))<<8)) + (*((unsigned char *) (pointer_1950X + 1)));
  if ((65535 == size_1951X)) {
    arg0K0 = ((((*((long *) (cont_1935X + 4))))>>2));
    goto L22450;}
  else {
    arg0K0 = size_1951X;
    goto L22450;}}
 L25440: {
  { long ignoreXX;
  PS_WRITE_CHAR(10, (stderr), ignoreXX) }
  why_1952X = (((*((long *) ((SstackS) + (((nargs_715X)<<2))))))>>2);
  if ((why_1952X == 1)) {
    if ((0 == (3 & (*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_715X)<<2)))))))))))))) {
      ps_error(message_678X, 3, opcode_716X, why_1952X, ((((*((long *) (((char *) (-3 + (*((long *) ((SstackS) + (-4 + (((nargs_715X)<<2))))))))))))>>2)));
      goto loseD0_return;}
    else {
      goto L25387;}}
  else {
    goto L25387;}}
 L22450: {
  v_1953X = arg0K0;
  arg1K0 = (cont_1935X + (4 + (((v_1953X)<<2))));
  arg2K1 = v_1949X;
  goto L22432;}
 L25387: {
  ps_error(message_678X, 2, opcode_716X, why_1952X);
  goto loseD0_return;}
 loseD0_return:
  switch (loseD0_return_tag) {
  case 0: goto loseD0_return_0;
  default: goto loseD0_return_1;
  }}

 maybe_write_template: {
  template_675X = merged_arg0K0;
  not_firstP_676X = merged_arg2K1;
  out_677X = merged_arg4K2;{
  if (not_firstP_676X) {
    ps_write_string(" <- ", out_677X);
    goto L17900;}
  else {
    goto L17900;}}
 L17900: {
  if ((3 == (3 & template_675X))) {
    if ((12 == (31 & ((((*((long *) ((((char *) (-3 + template_675X))) + -4))))>>2))))) {
      name_1954X = *((long *) ((((char *) (-3 + template_675X))) + 8));
      if ((0 == (3 & name_1954X))) {
        ps_write_integer((((name_1954X)>>2)), out_677X);
        maybe_write_template0_return_value = 1;
        goto maybe_write_template_return;}
      else {
        if ((3 == (3 & name_1954X))) {
          if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_1954X))) + -4))))>>2))))) {
            obj_1955X = *((long *) ((((char *) (-3 + name_1954X))) + 8));
            if ((3 == (3 & obj_1955X))) {
              if ((16 == (31 & ((((*((long *) ((((char *) (-3 + obj_1955X))) + -4))))>>2))))) {
                ps_write_string((((char *)(((char *) (-3 + (*((long *) ((((char *) (-3 + name_1954X))) + 8)))))))), out_677X);
                maybe_write_template0_return_value = 1;
                goto maybe_write_template_return;}
              else {
                goto L17935;}}
            else {
              goto L17935;}}
          else {
            goto L17935;}}
        else {
          goto L17935;}}}
    else {
      goto L17958;}}
  else {
    goto L17958;}}
 L17935: {
  if ((3 == (3 & name_1954X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + name_1954X))) + -4))))>>2))))) {
      obj_1956X = *((long *) ((((char *) (-3 + name_1954X))) + 8));
      if ((3 == (3 & obj_1956X))) {
        if ((1 == (31 & ((((*((long *) ((((char *) (-3 + obj_1956X))) + -4))))>>2))))) {
          ps_write_string((((char *)(((char *) (-3 + (*((long *) (((char *) (-3 + (*((long *) ((((char *) (-3 + name_1954X))) + 8))))))))))))), out_677X);
          maybe_write_template0_return_value = 1;
          goto maybe_write_template_return;}
        else {
          goto L17955;}}
      else {
        goto L17955;}}
    else {
      goto L17955;}}
  else {
    goto L17955;}}
 L17958: {
  ps_write_string(" ?? ", out_677X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 L17955: {
  ps_write_string("?", out_677X);
  maybe_write_template0_return_value = 1;
  goto maybe_write_template_return;}
 maybe_write_template_return:
  switch (maybe_write_template_return_tag) {
  case 0: goto maybe_write_template_return_0;
  case 1: goto maybe_write_template_return_1;
  default: goto maybe_write_template_return_2;
  }}

 find_template: {
  start_672X = merged_arg1K0;
  count_673X = merged_arg0K1;
  code_vector_674X = merged_arg0K2;{
  arg0K0 = 0;
  goto L14918;}
 L14918: {
  i_1957X = arg0K0;
  if ((i_1957X == count_673X)) {
    find_template0_return_value = 1;
    goto find_template_return;}
  else {
    next_1958X = *((long *) (start_672X + (((i_1957X)<<2))));
    if ((3 == (3 & next_1958X))) {
      if ((12 == (31 & ((((*((long *) ((((char *) (-3 + next_1958X))) + -4))))>>2))))) {
        if (((*((long *) (((char *) (-3 + next_1958X))))) == code_vector_674X)) {
          find_template0_return_value = next_1958X;
          goto find_template_return;}
        else {
          goto L14940;}}
      else {
        goto L14940;}}
    else {
      goto L14940;}}}
 L14940: {
  arg0K0 = (1 + i_1957X);
  goto L14918;}
 find_template_return:
  switch (find_template_return_tag) {
  case 0: goto find_template_return_0;
  case 1: goto find_template_return_1;
  default: goto find_template_return_2;
  }}

 rest_list_setupAgc: {
  wants_stack_args_668X = merged_arg0K0;
  stack_arg_count_669X = merged_arg0K1;
  list_args_670X = merged_arg0K2;
  list_arg_count_671X = merged_arg0K3;{
  if ((stack_arg_count_669X == wants_stack_args_668X)) {
    merged_arg0K0 = list_args_670X;
    merged_arg0K1 = list_arg_count_671X;
    copy_listSAgc_return_tag = 1;
    goto copy_listSAgc;
   copy_listSAgc_return_1:
    x_1959X = copy_listSAgc0_return_value;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1959X);
    goto rest_list_setupAgc_return;}
  else {
    if ((stack_arg_count_669X < wants_stack_args_668X)) {
      count_1960X = wants_stack_args_668X - stack_arg_count_669X;
      merged_arg0K0 = list_args_670X;
      merged_arg0K1 = count_1960X;
      push_list_return_tag = 4;
      goto push_list;
     push_list_return_4:
      v_1961X = push_list0_return_value;
      merged_arg0K0 = v_1961X;
      merged_arg0K1 = (list_arg_count_671X - count_1960X);
      copy_listSAgc_return_tag = 2;
      goto copy_listSAgc;
     copy_listSAgc_return_2:
      x_1962X = copy_listSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1962X);
      goto rest_list_setupAgc_return;}
    else {
      merged_arg0K0 = list_args_670X;
      merged_arg0K1 = list_arg_count_671X;
      copy_listSAgc_return_tag = 3;
      goto copy_listSAgc;
     copy_listSAgc_return_3:
      v_1963X = copy_listSAgc0_return_value;
      merged_arg0K0 = v_1963X;
      merged_arg0K1 = (stack_arg_count_669X - wants_stack_args_668X);
      pop_args_GlistSAgc_return_tag = 12;
      goto pop_args_GlistSAgc;
     pop_args_GlistSAgc_return_12:
      x_1964X = pop_args_GlistSAgc0_return_value;
      SstackS = ((SstackS) + -4);
      *((long *) (SstackS)) = (long) (x_1964X);
      goto rest_list_setupAgc_return;}}}
 rest_list_setupAgc_return:
  switch (rest_list_setupAgc_return_tag) {
  case 0: goto rest_list_setupAgc_return_0;
  default: goto rest_list_setupAgc_return_1;
  }}

 push_list: {
  list_666X = merged_arg0K0;
  count_667X = merged_arg0K1;{
  SstackS = ((SstackS) + -4);
  *((long *) (SstackS)) = (long) (list_666X);
  merged_arg0K0 = count_667X;
  ensure_stack_spaceB_return_tag = 2;
  goto ensure_stack_spaceB;
 ensure_stack_spaceB_return_2:
  v_1965X = ensure_stack_spaceB0_return_value;
  if (v_1965X) {
    s48_Sstack_limitS = (((char *) -1));
    goto L23900;}
  else {
    goto L23900;}}
 L23900: {
  list_1966X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  arg0K0 = count_667X;
  arg0K1 = list_1966X;
  goto L23909;}
 L23909: {
  i_1967X = arg0K0;
  l_1968X = arg0K1;
  if ((0 < i_1967X)) {
    x_1969X = *((long *) (((char *) (-3 + l_1968X))));
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_1969X);
    arg0K0 = (-1 + i_1967X);
    arg0K1 = (*((long *) ((((char *) (-3 + l_1968X))) + 4)));
    goto L23909;}
  else {
    push_list0_return_value = l_1968X;
    goto push_list_return;}}
 push_list_return:
  switch (push_list_return_tag) {
  case 0: goto push_list_return_0;
  case 1: goto push_list_return_1;
  case 2: goto push_list_return_2;
  case 3: goto push_list_return_3;
  default: goto push_list_return_4;
  }}

 ensure_stack_spaceB: {
  need_665X = merged_arg0K0;{
  if ((((SstackS) + (256 - (((need_665X)<<2)))) < (s48_Sstack_limitS))) {
    interruptP_1970X = (s48_Sstack_limitS) == (((char *) -1));
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((((SstackS) + (256 - (((need_665X)<<2)))) < (Sreal_stack_limitS))) {s48_copy_stack_into_heap();
      if ((((SstackS) + (256 - (((need_665X)<<2)))) < (Sreal_stack_limitS))) {
        ps_error("VM's stack is too small (how can this happen?)", 0);
        ensure_stack_spaceB0_return_value = interruptP_1970X;
        goto ensure_stack_spaceB_return;}
      else {
        ensure_stack_spaceB0_return_value = interruptP_1970X;
        goto ensure_stack_spaceB_return;}}
    else {
      ensure_stack_spaceB0_return_value = interruptP_1970X;
      goto ensure_stack_spaceB_return;}}
  else {
    ensure_stack_spaceB0_return_value = 0;
    goto ensure_stack_spaceB_return;}}
 ensure_stack_spaceB_return:
  switch (ensure_stack_spaceB_return_tag) {
  case 0: goto ensure_stack_spaceB_return_0;
  case 1: goto ensure_stack_spaceB_return_1;
  default: goto ensure_stack_spaceB_return_2;
  }}

 pop_args_GlistSAgc: {
  start_663X = merged_arg0K0;
  count_664X = merged_arg0K1;{
  Stemp0S = start_663X;s48_make_availableAgc(((((3 * count_664X))<<2)));
  value_1971X = Stemp0S;
  Stemp0S = 1;
  arg0K0 = value_1971X;
  arg0K1 = count_664X;
  goto L19193;}
 L19193: {
  args_1972X = arg0K0;
  count_1973X = arg0K1;
  if ((0 == count_1973X)) {
    pop_args_GlistSAgc0_return_value = args_1972X;
    goto pop_args_GlistSAgc_return;}
  else {
    a_1974X = *((long *) (SstackS));
    SstackS = ((SstackS) + 4);
    addr_1975X = s48_allocate_small(12);
    *((long *) addr_1975X) = (long) (2050);
    x_1976X = 3 + (((long) (addr_1975X + 4)));
    *((long *) (((char *) (-3 + x_1976X)))) = (long) (a_1974X);
    *((long *) ((((char *) (-3 + x_1976X))) + 4)) = (long) (args_1972X);
    arg0K0 = x_1976X;
    arg0K1 = (-1 + count_1973X);
    goto L19193;}}
 pop_args_GlistSAgc_return:
  switch (pop_args_GlistSAgc_return_tag) {
  case 0: goto pop_args_GlistSAgc_return_0;
  case 1: goto pop_args_GlistSAgc_return_1;
  case 2: goto pop_args_GlistSAgc_return_2;
  case 3: goto pop_args_GlistSAgc_return_3;
  case 4: goto pop_args_GlistSAgc_return_4;
  case 5: goto pop_args_GlistSAgc_return_5;
  case 6: goto pop_args_GlistSAgc_return_6;
  case 7: goto pop_args_GlistSAgc_return_7;
  case 8: goto pop_args_GlistSAgc_return_8;
  case 9: goto pop_args_GlistSAgc_return_9;
  case 10: goto pop_args_GlistSAgc_return_10;
  case 11: goto pop_args_GlistSAgc_return_11;
  default: goto pop_args_GlistSAgc_return_12;
  }}

 copy_listSAgc: {
  list_661X = merged_arg0K0;
  length_662X = merged_arg0K1;{
  if ((0 == length_662X)) {
    copy_listSAgc0_return_value = 25;
    goto copy_listSAgc_return;}
  else {
    Stemp0S = list_661X;s48_make_availableAgc(((((3 * length_662X))<<2)));
    value_1977X = Stemp0S;
    Stemp0S = 1;
    a_1978X = *((long *) (((char *) (-3 + value_1977X))));
    addr_1979X = s48_allocate_small(12);
    *((long *) addr_1979X) = (long) (2050);
    x_1980X = 3 + (((long) (addr_1979X + 4)));
    *((long *) (((char *) (-3 + x_1980X)))) = (long) (a_1978X);
    *((long *) ((((char *) (-3 + x_1980X))) + 4)) = (long) (25);
    arg0K0 = (*((long *) ((((char *) (-3 + value_1977X))) + 4)));
    arg0K1 = x_1980X;
    goto L19081;}}
 L19081: {
  l_1981X = arg0K0;
  last_1982X = arg0K1;
  if ((25 == l_1981X)) {
    copy_listSAgc0_return_value = x_1980X;
    goto copy_listSAgc_return;}
  else {
    a_1983X = *((long *) (((char *) (-3 + l_1981X))));
    addr_1984X = s48_allocate_small(12);
    *((long *) addr_1984X) = (long) (2050);
    x_1985X = 3 + (((long) (addr_1984X + 4)));
    *((long *) (((char *) (-3 + x_1985X)))) = (long) (a_1983X);
    *((long *) ((((char *) (-3 + x_1985X))) + 4)) = (long) (25);
    addr_1986X = (((char *) (-3 + last_1982X))) + 4;S48_WRITE_BARRIER(last_1982X, addr_1986X, x_1985X);
    *((long *) addr_1986X) = (long) (x_1985X);
    arg0K0 = (*((long *) ((((char *) (-3 + l_1981X))) + 4)));
    arg0K1 = x_1985X;
    goto L19081;}}
 copy_listSAgc_return:
  switch (copy_listSAgc_return_tag) {
  case 0: goto copy_listSAgc_return_0;
  case 1: goto copy_listSAgc_return_1;
  case 2: goto copy_listSAgc_return_2;
  default: goto copy_listSAgc_return_3;
  }}

 pop_continuationB: {
{ SstackS = (ScontS);
  cont_1987X = ScontS;
  pointer_1988X = (((char *) (*((long *) cont_1987X)))) + -2;
  size_1989X = ((((*((unsigned char *) pointer_1988X)))<<8)) + (*((unsigned char *) (pointer_1988X + 1)));
  if ((65535 == size_1989X)) {
    arg0K0 = ((((*((long *) (cont_1987X + 4))))>>2));
    goto L18925;}
  else {
    arg0K0 = size_1989X;
    goto L18925;}}
 L18925: {
  v_1990X = arg0K0;
  ScontS = (cont_1987X + (4 + (((v_1990X)<<2))));
  v_1991X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Scode_pointerS = (((char *) v_1991X));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  goto pop_continuationB_return;}
 pop_continuationB_return:
  switch (pop_continuationB_return_tag) {
  case 0: goto pop_continuationB_return_0;
  case 1: goto pop_continuationB_return_1;
  case 2: goto pop_continuationB_return_2;
  case 3: goto pop_continuationB_return_3;
  case 4: goto pop_continuationB_return_4;
  case 5: goto pop_continuationB_return_5;
  default: goto pop_continuationB_return_6;
  }}

 okay_copy_argsP: {
  thing_658X = merged_arg0K0;
  index_659X = merged_arg0K1;
  count_660X = merged_arg0K2;{
  if ((index_659X < 0)) {
    okay_copy_argsP0_return_value = 0;
    goto okay_copy_argsP_return;}
  else {
    if ((3 == (3 & thing_658X))) {
      if ((16 == (31 & ((((*((long *) ((((char *) (-3 + thing_658X))) + -4))))>>2))))) {
        if (((-1 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_658X))) + -4))))>>8))) < (index_659X + count_660X))) {
          okay_copy_argsP0_return_value = 0;
          goto okay_copy_argsP_return;}
        else {
          okay_copy_argsP0_return_value = 1;
          goto okay_copy_argsP_return;}}
      else {
        goto L18599;}}
    else {
      goto L18599;}}}
 L18599: {
  if ((3 == (3 & thing_658X))) {
    if ((17 == (31 & ((((*((long *) ((((char *) (-3 + thing_658X))) + -4))))>>2))))) {
      if ((((long)(((unsigned long)(*((long *) ((((char *) (-3 + thing_658X))) + -4))))>>8)) < (index_659X + count_660X))) {
        okay_copy_argsP0_return_value = 0;
        goto okay_copy_argsP_return;}
      else {
        okay_copy_argsP0_return_value = 1;
        goto okay_copy_argsP_return;}}
    else {
      okay_copy_argsP0_return_value = 0;
      goto okay_copy_argsP_return;}}
  else {
    okay_copy_argsP0_return_value = 0;
    goto okay_copy_argsP_return;}}
 okay_copy_argsP_return:
  switch (okay_copy_argsP_return_tag) {
  case 0: goto okay_copy_argsP_return_0;
  default: goto okay_copy_argsP_return_1;
  }}

 shift_space: {
  x_656X = merged_arg0K0;
  n_657X = merged_arg0K1;{
  if ((0 == (3 & x_656X))) {
    arg0K0 = 1;
    arg0K1 = 3;
    goto L16910;}
  else {
    arg0K0 = (-1 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + x_656X))) + -4))))>>8))))>>2)));
    arg0K1 = 0;
    goto L16910;}}
 L16910: {
  x_size_1992X = arg0K0;
  extra_1993X = arg0K1;
  if ((n_657X < 0)) {
    if ((x_size_1992X < 1)) {
      arg0K0 = 1;
      goto L16952;}
    else {
      arg0K0 = x_size_1992X;
      goto L16952;}}
  else {
    n_1994X = n_657X / 30;
    arg0K0 = (3 + (((((7 + (((x_size_1992X)<<2))))>>2)) + ((((7 + (((n_1994X)<<2))))>>2))));
    goto L16930;}}
 L16952: {
  v_1995X = arg0K0;
  arg0K0 = (4 + ((-2 & ((((11 + (((v_1995X)<<2))))>>1))) + ((((7 + (((x_size_1992X)<<2))))>>2))));
  goto L16930;}
 L16930: {
  v_1996X = arg0K0;
  shift_space0_return_value = (extra_1993X + v_1996X);
  goto shift_space_return;}
 shift_space_return:
  switch (shift_space_return_tag) {
  case 0: goto shift_space_return_0;
  default: goto shift_space_return_1;
  }}

 proposal_d_write: {
  stob_653X = merged_arg0K0;
  index_654X = merged_arg0K1;
  value_655X = merged_arg0K2;{
  log_1997X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L16618;}
 L16618: {
  i_1998X = arg0K0;
  next_stob_1999X = *((long *) ((((char *) (-3 + log_1997X))) + (((i_1998X)<<2))));
  if ((1 == next_stob_1999X)) {add_log_entryAgc(1, i_1998X, stob_653X, index_654X, value_655X, 0);
    goto proposal_d_write_return;}
  else {
    if ((stob_653X == next_stob_1999X)) {
      if ((index_654X == (*((long *) ((((char *) (-3 + log_1997X))) + (4 + (((i_1998X)<<2)))))))) {
        addr_2000X = (((char *) (-3 + log_1997X))) + (8 + (((i_1998X)<<2)));S48_WRITE_BARRIER(log_1997X, addr_2000X, value_655X);
        *((long *) addr_2000X) = (long) (value_655X);
        goto proposal_d_write_return;}
      else {
        goto L16638;}}
    else {
      goto L16638;}}}
 L16638: {
  arg0K0 = (4 + i_1998X);
  goto L16618;}
 proposal_d_write_return:
  switch (proposal_d_write_return_tag) {
  case 0: goto proposal_d_write_return_0;
  case 1: goto proposal_d_write_return_1;
  default: goto proposal_d_write_return_2;
  }}

 proposal_d_read: {
  stob_651X = merged_arg0K0;
  index_652X = merged_arg0K1;{
  log_2001X = *((long *) ((((char *) (-3 + (*((long *) ((((char *) (-3 + (Scurrent_threadS)))) + 12)))))) + 4));
  arg0K0 = 0;
  goto L16441;}
 L16441: {
  i_2002X = arg0K0;
  next_stob_2003X = *((long *) ((((char *) (-3 + log_2001X))) + (((i_2002X)<<2))));
  if ((1 == next_stob_2003X)) {
    v_2004X = add_log_entryAgc(1, i_2002X, stob_651X, index_652X, (*((long *) ((((char *) (-3 + stob_651X))) + (-4 & index_652X)))), 1);
    proposal_d_read0_return_value = v_2004X;
    goto proposal_d_read_return;}
  else {
    if ((stob_651X == next_stob_2003X)) {
      if ((index_652X == (*((long *) ((((char *) (-3 + log_2001X))) + (4 + (((i_2002X)<<2)))))))) {
        proposal_d_read0_return_value = (*((long *) ((((char *) (-3 + log_2001X))) + (8 + (((i_2002X)<<2))))));
        goto proposal_d_read_return;}
      else {
        goto L16463;}}
    else {
      goto L16463;}}}
 L16463: {
  arg0K0 = (4 + i_2002X);
  goto L16441;}
 proposal_d_read_return:
  switch (proposal_d_read_return_tag) {
  case 0: goto proposal_d_read_return_0;
  case 1: goto proposal_d_read_return_1;
  default: goto proposal_d_read_return_2;
  }}

 pending_interruptP: {
{ if ((s48_Spending_eventsPS)) {
    s48_Spending_eventsPS = 0;
    goto L16412;}
  else {
    goto L16398;}}
 L16412: {
  type_2005X = s48_get_next_event(&channel_2006X, &status_2007X);
  if ((type_2005X == ALARM_EVENT)) {
    arg0K0 = 1;
    goto L16418;}
  else {
    if ((type_2005X == KEYBOARD_INTERRUPT_EVENT)) {
      arg0K0 = 2;
      goto L16418;}
    else {
      if ((type_2005X == IO_COMPLETION_EVENT)) {enqueue_channelB(channel_2006X, status_2007X, 1);
        arg0K0 = 8;
        goto L16418;}
      else {
        if ((type_2005X == IO_ERROR_EVENT)) {enqueue_channelB(channel_2006X, status_2007X, 5);
          arg0K0 = 8;
          goto L16418;}
        else {
          if ((type_2005X == OS_SIGNAL_EVENT)) {
            arg0K0 = 16;
            goto L16418;}
          else {
            if ((type_2005X == NO_EVENT)) {
              arg0K0 = 0;
              goto L16418;}
            else {
              if ((type_2005X == ERROR_EVENT)) {
                ps_write_string("OS error while getting event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                ps_write_string((ps_error_string(status_2007X)), (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L16418;}
              else {
                ps_write_string("unknown type of event", (stderr));
                { long ignoreXX;
                PS_WRITE_CHAR(10, (stderr), ignoreXX) }
                arg0K0 = 0;
                goto L16418;}}}}}}}}
 L16398: {
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}
    else {
      pending_interruptP0_return_value = 0;
      goto pending_interruptP_return;}}
  else {
    pending_interruptP0_return_value = 1;
    goto pending_interruptP_return;}}
 L16418: {
  interrupt_bit_2008X = arg0K0;
  Spending_interruptsS = ((Spending_interruptsS) | interrupt_bit_2008X);
  if ((type_2005X == NO_EVENT)) {
    goto L16398;}
  else {
    goto L16412;}}
 pending_interruptP_return:
  switch (pending_interruptP_return_tag) {
  case 0: goto pending_interruptP_return_0;
  case 1: goto pending_interruptP_return_1;
  case 2: goto pending_interruptP_return_2;
  case 3: goto pending_interruptP_return_3;
  case 4: goto pending_interruptP_return_4;
  case 5: goto pending_interruptP_return_5;
  default: goto pending_interruptP_return_6;
  }}

 make_closure: {
  a_649X = merged_arg0K0;
  b_650X = merged_arg0K1;{
  addr_2009X = s48_allocate_small(12);
  *((long *) addr_2009X) = (long) (2062);
  x_2010X = 3 + (((long) (addr_2009X + 4)));
  *((long *) (((char *) (-3 + x_2010X)))) = (long) (a_649X);
  *((long *) ((((char *) (-3 + x_2010X))) + 4)) = (long) (b_650X);
  if ((3 == (3 & x_2010X))) {
    if ((0 == (128 & (*((long *) ((((char *) (-3 + x_2010X))) + -4)))))) {
      *((long *) ((((char *) (-3 + x_2010X))) + -4)) = (long) ((128 | (*((long *) ((((char *) (-3 + x_2010X))) + -4)))));
      make_closure0_return_value = x_2010X;
      goto make_closure_return;}
    else {
      make_closure0_return_value = x_2010X;
      goto make_closure_return;}}
  else {
    make_closure0_return_value = x_2010X;
    goto make_closure_return;}}
 make_closure_return:
  switch (make_closure_return_tag) {
  case 0: goto make_closure_return_0;
  default: goto make_closure_return_1;
  }}

 get_current_port: {
  marker_648X = merged_arg0K0;{
  thread_2011X = Scurrent_threadS;
  if ((3 == (3 & thread_2011X))) {
    if ((9 == (31 & ((((*((long *) ((((char *) (-3 + thread_2011X))) + -4))))>>2))))) {
      if ((1 < ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + thread_2011X))) + -4))))>>8))))>>2)))) {
        arg0K0 = (*((long *) ((((char *) (-3 + thread_2011X))) + 4)));
        goto L14372;}
      else {
        goto L14422;}}
    else {
      goto L14422;}}
  else {
    goto L14422;}}
 L14372: {
  env_2012X = arg0K0;
  if ((3 == (3 & env_2012X))) {
    if ((0 == (31 & ((((*((long *) ((((char *) (-3 + env_2012X))) + -4))))>>2))))) {
      obj_2013X = *((long *) (((char *) (-3 + env_2012X))));
      if ((3 == (3 & obj_2013X))) {
        if ((0 == (31 & ((((*((long *) ((((char *) (-3 + obj_2013X))) + -4))))>>2))))) {
          if ((marker_648X == (*((long *) (((char *) (-3 + (*((long *) (((char *) (-3 + env_2012X)))))))))))) {
            get_current_port0_return_value = (*((long *) ((((char *) (-3 + (*((long *) (((char *) (-3 + env_2012X)))))))) + 4)));
            goto get_current_port_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + env_2012X))) + 4)));
            goto L14372;}}
        else {
          goto L14444;}}
      else {
        goto L14444;}}
    else {
      goto L14444;}}
  else {
    goto L14444;}}
 L14422: {
  ps_error("current thread is not a record", 0);
  get_current_port0_return_value = v_2014X;
  goto get_current_port_return;}
 L14444: {
  if ((25 == env_2012X)) {
    if (((((marker_648X)>>2)) == 1)) {
      arg3K0 = "dynamic environment doesn't have current-output-port";
      goto L14398;}
    else {
      arg3K0 = "dynamic environment doesn't have current-input-port";
      goto L14398;}}
  else {
    ps_error("dynamic environment is not a proper list", 0);
    goto get_current_port_return;}}
 L14398: {
  v_2015X = arg3K0;
  ps_error(v_2015X, 0);
  goto get_current_port_return;}
 get_current_port_return:
  switch (get_current_port_return_tag) {
  case 0: goto get_current_port_return_0;
  case 1: goto get_current_port_return_1;
  default: goto get_current_port_return_2;
  }}

 okay_argument_list: {
  list_647X = merged_arg0K0;{
  arg0K0 = list_647X;
  arg0K1 = 0;
  arg0K2 = list_647X;
  arg2K3 = 0;
  goto L14239;}
 L14239: {
  fast_2016X = arg0K0;
  len_2017X = arg0K1;
  slow_2018X = arg0K2;
  move_slowP_2019X = arg2K3;
  if ((25 == fast_2016X)) {
    okay_argument_list0_return_value = 1;
    okay_argument_list1_return_value = len_2017X;
    goto okay_argument_list_return;}
  else {
    if ((3 == (3 & fast_2016X))) {
      if ((0 == (31 & ((((*((long *) ((((char *) (-3 + fast_2016X))) + -4))))>>2))))) {
        if (move_slowP_2019X) {
          if ((fast_2016X == slow_2018X)) {
            okay_argument_list0_return_value = 0;
            okay_argument_list1_return_value = 0;
            goto okay_argument_list_return;}
          else {
            arg0K0 = (*((long *) ((((char *) (-3 + fast_2016X))) + 4)));
            arg0K1 = (1 + len_2017X);
            arg0K2 = (*((long *) ((((char *) (-3 + slow_2018X))) + 4)));
            arg2K3 = 0;
            goto L14239;}}
        else {
          arg0K0 = (*((long *) ((((char *) (-3 + fast_2016X))) + 4)));
          arg0K1 = (1 + len_2017X);
          arg0K2 = slow_2018X;
          arg2K3 = 1;
          goto L14239;}}
      else {
        okay_argument_list0_return_value = 0;
        okay_argument_list1_return_value = 0;
        goto okay_argument_list_return;}}
    else {
      okay_argument_list0_return_value = 0;
      okay_argument_list1_return_value = 0;
      goto okay_argument_list_return;}}}
 okay_argument_list_return:
  switch (okay_argument_list_return_tag) {
  case 0: goto okay_argument_list_return_0;
  case 1: goto okay_argument_list_return_1;
  default: goto okay_argument_list_return_2;
  }}

 copy_continuation_from_heapB: {
  cont_645X = merged_arg0K0;
  stack_arg_count_646X = merged_arg0K1;{
  stack_size_2020X = -2 + ((((3 + ((long)(((unsigned long)(*((long *) ((((char *) (-3 + cont_645X))) + -4))))>>8))))>>2));
  new_cont_2021X = (Sbottom_of_stackS) + (0 - (((stack_size_2020X)<<2)));
  if ((0 == stack_arg_count_646X)) {
    SstackS = new_cont_2021X;
    goto L14068;}
  else {
    new_stack_2022X = new_cont_2021X + (0 - (((stack_arg_count_646X)<<2)));
    if ((new_stack_2022X < (SstackS))) {
      memmove((void *)new_stack_2022X, (void *)(SstackS),(((stack_arg_count_646X)<<2)));
      SstackS = new_stack_2022X;
      goto L14068;}
    else {
      goto L14068;}}}
 L14068: {
  ScontS = new_cont_2021X;
  memmove((void *)(new_cont_2021X + 4), (void *)((((char *) (-3 + cont_645X))) + 12),(-4 + (((stack_size_2020X)<<2))));
  *((long *) new_cont_2021X) = (long) ((((long) ((((char *) (-3 + (*((long *) ((((char *) (-3 + cont_645X))) + 4)))))) + ((((*((long *) (((char *) (-3 + cont_645X))))))>>2))))));
  Sheap_continuationS = (*((long *) ((((char *) (-3 + cont_645X))) + 8)));
  copy_continuation_from_heapB0_return_value = new_cont_2021X;
  goto copy_continuation_from_heapB_return;}
 copy_continuation_from_heapB_return:
  switch (copy_continuation_from_heapB_return_tag) {
  case 0: goto copy_continuation_from_heapB_return_0;
  case 1: goto copy_continuation_from_heapB_return_1;
  default: goto copy_continuation_from_heapB_return_2;
  }}

 get_error_string: {
  status_644X = merged_arg0K0;{
  string_2023X = ps_error_string(status_644X);
  x_2024X = strlen((char *) string_2023X);
  if ((x_2024X < 512)) {
    arg0K0 = x_2024X;
    goto L13336;}
  else {
    arg0K0 = 512;
    goto L13336;}}
 L13336: {
  len_2025X = arg0K0;
  len_2026X = 1 + len_2025X;
  addr_2027X = s48_allocate_small((4 + len_2026X));
  *((long *) addr_2027X) = (long) ((66 + (((len_2026X)<<8))));
  string_2028X = 3 + (((long) (addr_2027X + 4)));
  *((unsigned char *) ((((char *) (-3 + string_2028X))) + len_2025X)) = (unsigned char) (0);
  arg0K0 = 0;
  goto L13346;}
 L13346: {
  i_2029X = arg0K0;
  if ((i_2029X == len_2025X)) {
    get_error_string0_return_value = string_2028X;
    goto get_error_string_return;}
  else {
    *((unsigned char *) ((((char *) (-3 + string_2028X))) + i_2029X)) = (unsigned char) ((((unsigned char) (*(string_2023X + i_2029X)))));
    arg0K0 = (1 + i_2029X);
    goto L13346;}}
 get_error_string_return:
  switch (get_error_string_return_tag) {
  case 0: goto get_error_string_return_0;
  case 1: goto get_error_string_return_1;
  case 2: goto get_error_string_return_2;
  default: goto get_error_string_return_3;
  }}

 s48_pop_interrupt_state: {
{ p_2030X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  Senabled_interruptsS = (((p_2030X)>>2));
  if ((0 == ((Spending_interruptsS) & (Senabled_interruptsS)))) {
    s48_Sstack_limitS = (Sreal_stack_limitS);
    if ((s48_Spending_eventsPS)) {
      s48_Sstack_limitS = (((char *) -1));
      goto L9801;}
    else {
      goto L9801;}}
  else {
    s48_Sstack_limitS = (((char *) -1));
    goto L9801;}}
 L9801: {
  proposal_2031X = *((long *) (SstackS));
  SstackS = ((SstackS) + 4);
  x_2032X = Scurrent_threadS;
  addr_2033X = (((char *) (-3 + x_2032X))) + 12;S48_WRITE_BARRIER(x_2032X, addr_2033X, proposal_2031X);
  *((long *) addr_2033X) = (long) (proposal_2031X);
  goto s48_pop_interrupt_state_return;}
 s48_pop_interrupt_state_return:
  switch (s48_pop_interrupt_state_return_tag) {
  case 0: goto s48_pop_interrupt_state_return_0;
  case 1: goto s48_pop_interrupt_state_return_1;
  default: goto s48_pop_interrupt_state_return_2;
  }}

 move_args_above_contB: {
  nargs_643X = merged_arg0K0;{
  top_of_args_2034X = SstackS;
  if (((ScontS) == (top_of_args_2034X + (((nargs_643X)<<2))))) {
    goto move_args_above_contB_return;}
  else {
    SstackS = (ScontS);
    arg1K0 = ((SstackS) + -4);
    arg1K1 = (top_of_args_2034X + (-4 + (((nargs_643X)<<2))));
    goto L5876;}}
 L5876: {
  loc_2035X = arg1K0;
  arg_2036X = arg1K1;
  if ((arg_2036X < top_of_args_2034X)) {
    SstackS = ((SstackS) + (0 - (((nargs_643X)<<2))));
    goto move_args_above_contB_return;}
  else {
    *((long *) loc_2035X) = (long) ((*((long *) arg_2036X)));
    arg1K0 = (loc_2035X + -4);
    arg1K1 = (arg_2036X + -4);
    goto L5876;}}
 move_args_above_contB_return:
  switch (move_args_above_contB_return_tag) {
  case 0: goto move_args_above_contB_return_0;
  case 1: goto move_args_above_contB_return_1;
  case 2: goto move_args_above_contB_return_2;
  case 3: goto move_args_above_contB_return_3;
  case 4: goto move_args_above_contB_return_4;
  case 5: goto move_args_above_contB_return_5;
  case 6: goto move_args_above_contB_return_6;
  case 7: goto move_args_above_contB_return_7;
  default: goto move_args_above_contB_return_8;
  }}

}
long s48_call_startup_procedure(char **startup_vector_2037X, long startup_vector_length_2038X)
{
  long arg0K0;
  long merged_arg0K1;
  char *merged_arg3K0;

  int enter_string_return_tag;
  long enter_string0_return_value;
  char *string_2039X;
  long i_2077X;
  long string_2076X;
  char * addr_2075X;
  long len_2074X;
  long len_2073X;
  long v_2072X;
  long x_2071X;
  long vm_channel_2070X;
  long v_2069X;
  long channel_2068X;
  long vm_channel_2067X;
  long v_2066X;
  long channel_2065X;
  long vm_channel_2064X;
  long v_2063X;
  long channel_2062X;
  long i_2061X;
  long length_2060X;
  long *v_2059X;
  long v_2058X;
  long v_2057X;
  long y_2056X;
  long x_2055X;
  long v_2054X;
  long x_2053X;
  long y_2052X;
  char * addr_2051X;
  long value_2050X;
  long y_2049X;
  long x_2048X;
  long i_2047X;
  long vector_2046X;
  long vector_2045X;
  char * addr_2044X;
  long len_2043X;
  long code_2042X;
  long code_2041X;
  long code_2040X;
 {  SstackS = (Sbottom_of_stackS);
  Sheap_continuationS = 1;
  ScontS = (Sbottom_of_stackS);
  code_2040X = Sinterrupted_byte_opcode_return_codeS;
  Slast_code_calledS = code_2040X;
  Scode_pointerS = (((char *) (-3 + code_2040X)));
  code_2041X = Sinterrupted_native_call_return_codeS;
  Slast_code_calledS = code_2041X;
  Scode_pointerS = (((char *) (-3 + code_2041X)));
  code_2042X = Snative_poll_return_codeS;
  Slast_code_calledS = code_2042X;
  Scode_pointerS = (((char *) (-3 + code_2042X)));
  Slast_code_pointer_resumedS = (Scode_pointerS);
  SvalS = 13;
  Scurrent_threadS = 25;SHARED_SETB((Ssession_dataS), 25);SHARED_SETB((Sexception_handlersS), 25);SHARED_SETB((Sinterrupt_handlersS), 25);
  Senabled_interruptsS = 0;SHARED_SETB((Sfinalizer_alistS), 25);
  Sfinalize_theseS = 25;
  Spending_interruptsS = 0;
  s48_Spending_interruptPS = 0;
  Sos_signal_ring_startS = 0;
  Sos_signal_ring_readyS = 0;
  Sos_signal_ring_endS = 0;
  Sinterrupted_templateS = 1;
  len_2043X = ((startup_vector_length_2038X)<<2);
  addr_2044X = s48_allocate_tracedAgc((4 + len_2043X));
  if ((addr_2044X == NULL)) {
    arg0K0 = 1;
    goto L19637;}
  else {
    *((long *) addr_2044X) = (long) ((10 + (((len_2043X)<<8))));
    arg0K0 = (3 + (((long) (addr_2044X + 4))));
    goto L19637;}}
 L19637: {
  vector_2045X = arg0K0;
  if ((1 == vector_2045X)) {
    ps_error("Out of space, unable to allocate", 0);
    arg0K0 = vector_2045X;
    goto L19623;}
  else {
    arg0K0 = vector_2045X;
    goto L19623;}}
 L19623: {
  vector_2046X = arg0K0;
  arg0K0 = 0;
  goto L19660;}
 L19660: {
  i_2047X = arg0K0;
  if ((i_2047X == startup_vector_length_2038X)) {
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vector_2046X);
    x_2048X = STDOUT_FD();
    y_2049X = STDERR_FD();
    if ((x_2048X < y_2049X)) {
      arg0K0 = y_2049X;
      goto L21708;}
    else {
      arg0K0 = x_2048X;
      goto L21708;}}
  else {
    value_2050X = enter_stringAgc((*(startup_vector_2037X + i_2047X)));
    addr_2051X = (((char *) (-3 + vector_2046X))) + (((i_2047X)<<2));S48_WRITE_BARRIER(vector_2046X, addr_2051X, value_2050X);
    *((long *) addr_2051X) = (long) (value_2050X);
    arg0K0 = (1 + i_2047X);
    goto L19660;}}
 L21708: {
  y_2052X = arg0K0;
  x_2053X = STDIN_FD();
  if ((x_2053X < y_2052X)) {
    arg0K0 = y_2052X;
    goto L21710;}
  else {
    arg0K0 = x_2053X;
    goto L21710;}}
 L21710: {
  v_2054X = arg0K0;
  x_2055X = Snumber_of_channelsS;
  y_2056X = 1 + v_2054X;
  if ((x_2055X < y_2056X)) {
    arg0K0 = y_2056X;
    goto L21712;}
  else {
    arg0K0 = x_2055X;
    goto L21712;}}
 L21712: {
  v_2057X = arg0K0;
  Snumber_of_channelsS = v_2057X;
  v_2058X = STDIN_FD();
  Svm_channelsS = ((long*)malloc(sizeof(long) * (Snumber_of_channelsS)));
  Spending_channels_headS = 1;
  Spending_channels_tailS = 1;
  if ((NULL == (Svm_channelsS))) {
    ps_error("out of memory, unable to continue", 0);
    goto L21734;}
  else {
    goto L21734;}}
 L21734: {
  v_2059X = Svm_channelsS;
  length_2060X = Snumber_of_channelsS;
  arg0K0 = 0;
  goto L21782;}
 L21782: {
  i_2061X = arg0K0;
  if ((i_2061X < length_2060X)) {
    *(v_2059X + i_2061X) = 1;
    arg0K0 = (1 + i_2061X);
    goto L21782;}
  else {s48_make_availableAgc(((((3 * (9 + ((((4 + (strlen((char *) "standard output"))))>>2)))))<<2)));
    channel_2062X = STDOUT_FD();
    merged_arg3K0 = "standard output";
    merged_arg0K1 = 0;
    enter_string_return_tag = 0;
    goto enter_string;
   enter_string_return_0:
    v_2063X = enter_string0_return_value;
    vm_channel_2064X = make_channel(8, v_2063X, (((channel_2062X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + channel_2062X) = vm_channel_2064X;
    channel_2065X = STDIN_FD();
    merged_arg3K0 = "standard input";
    merged_arg0K1 = 0;
    enter_string_return_tag = 1;
    goto enter_string;
   enter_string_return_1:
    v_2066X = enter_string0_return_value;
    vm_channel_2067X = make_channel(4, v_2066X, (((channel_2065X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + channel_2065X) = vm_channel_2067X;
    channel_2068X = STDERR_FD();
    merged_arg3K0 = "standard error";
    merged_arg0K1 = 0;
    enter_string_return_tag = 2;
    goto enter_string;
   enter_string_return_2:
    v_2069X = enter_string0_return_value;
    vm_channel_2070X = make_channel(8, v_2069X, (((channel_2068X)<<2)), 1, 1, 1, 1, 0);
    *((Svm_channelsS) + channel_2068X) = vm_channel_2070X;
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vm_channel_2067X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vm_channel_2064X);
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (vm_channel_2070X);
    x_2071X = s48_resumer_records();
    SstackS = ((SstackS) + -4);
    *((long *) (SstackS)) = (long) (x_2071X);s48_initialization_completeB();
    v_2072X = s48_startup_procedure();
    return s48_restart(v_2072X, 5);}}
 enter_string: {
  string_2039X = merged_arg3K0;{
  len_2073X = strlen((char *) string_2039X);
  len_2074X = 1 + len_2073X;
  addr_2075X = s48_allocate_small((4 + len_2074X));
  *((long *) addr_2075X) = (long) ((66 + (((len_2074X)<<8))));
  string_2076X = 3 + (((long) (addr_2075X + 4)));
  *((unsigned char *) ((((char *) (-3 + string_2076X))) + len_2073X)) = (unsigned char) (0);
  arg0K0 = 0;
  goto L16242;}
 L16242: {
  i_2077X = arg0K0;
  if ((i_2077X == len_2073X)) {
    enter_string0_return_value = string_2076X;
    goto enter_string_return;}
  else {
    *((unsigned char *) ((((char *) (-3 + string_2076X))) + i_2077X)) = (unsigned char) ((((unsigned char) (*(string_2039X + i_2077X)))));
    arg0K0 = (1 + i_2077X);
    goto L16242;}}
 enter_string_return:
  switch (enter_string_return_tag) {
  case 0: goto enter_string_return_0;
  case 1: goto enter_string_return_1;
  default: goto enter_string_return_2;
  }}

}void
s48_init(void)
{
Snumber_of_channelsS = 100;
Spending_channels_headS = 1;
Spending_channels_tailS = 1;
Stemp0S = 1;
Stemp1S = 1;
Sstack_warningPS = 1;
Sos_signal_ringS = malloc(32 * sizeof(long));
Sos_signal_ringS[0] = 0;
Sos_signal_ringS[1] = 0;
Sos_signal_ringS[2] = 0;
Sos_signal_ringS[3] = 0;
Sos_signal_ringS[4] = 0;
Sos_signal_ringS[5] = 0;
Sos_signal_ringS[6] = 0;
Sos_signal_ringS[7] = 0;
Sos_signal_ringS[8] = 0;
Sos_signal_ringS[9] = 0;
Sos_signal_ringS[10] = 0;
Sos_signal_ringS[11] = 0;
Sos_signal_ringS[12] = 0;
Sos_signal_ringS[13] = 0;
Sos_signal_ringS[14] = 0;
Sos_signal_ringS[15] = 0;
Sos_signal_ringS[16] = 0;
Sos_signal_ringS[17] = 0;
Sos_signal_ringS[18] = 0;
Sos_signal_ringS[19] = 0;
Sos_signal_ringS[20] = 0;
Sos_signal_ringS[21] = 0;
Sos_signal_ringS[22] = 0;
Sos_signal_ringS[23] = 0;
Sos_signal_ringS[24] = 0;
Sos_signal_ringS[25] = 0;
Sos_signal_ringS[26] = 0;
Sos_signal_ringS[27] = 0;
Sos_signal_ringS[28] = 0;
Sos_signal_ringS[29] = 0;
Sos_signal_ringS[30] = 0;
Sos_signal_ringS[31] = 0;
Sos_signal_ring_startS = 0;
Sos_signal_ring_readyS = 0;
Sos_signal_ring_endS = 0;
Sexternal_exceptionPS = 0;
Simported_bindingsS = 1;
Sexported_bindingsS = 1;
Sexternal_root_stackS = NULL;
Sexternal_root_stack_baseS = NULL;
Spermanent_external_rootsS = NULL;
Spost_gc_cleanupS = HtopD10644;
Sgc_root_procS = HtopD10655;
Snative_exception_contS = 0;
s48_Scallback_return_stack_blockS = 1;
s48_Spending_eventsPS = 0;
}
